Làm thế nào để bạn gán lệnh cho các phím trong Terminal?


10

Có một giải pháp để gán các tổ hợp phím đặc biệt cho các từ trong sử dụng thiết bị đầu cuối. Ví dụ, lệnh less rất hữu ích và tôi sử dụng ia lot để dẫn đầu ra của một tiến trình khác thông qua nó.

Ý tưởng sẽ là thiết lập các tổ hợp phím đặc biệt chỉ hoạt động trong thiết bị đầu cuối được chỉ định để viết các lệnh khác nhau? Vì vậy, nhấn Ctrl+ Ltrong cửa sổ terminal có thể viết

| less

hoặc Ctrl+ Gcó thể đại diện cho

| grep

Lưu ý: tôi chỉ có nghĩa là thêm các chữ cái vào dòng lệnh không thực hiện cuối cùng. Một cách tương tự những gì tabcompletion nhưng cụ thể hơn.

Câu trả lời:


10

Có, bạn có thể sử dụng lệnh bind

bind '"\ey"':"\"less \C-m\""

Điều đó ánh xạ Alt-e sang lệnh ít hơn và thực thi nó (với \ Cm aka Ctrl-m)

Có lẽ là cho | bạn cần phải thoát khỏi nó

bind '"\ey"':"\"\|less \C-m\""

Nếu bạn muốn chỉ thêm nó vào dòng lệnh, hãy xóa * \ Cm \ ""

Hãy cẩn thận vì đã có một số ràng buộc được xác định:

Ctrl + A    Go to the beginning of the line you are currently typing on
Ctrl + E    Go to the end of the line you are currently typing on
Ctrl + L                Clears the Screen, similar to the clear command
Ctrl + U    Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
Ctrl + H    Same as backspace
Ctrl + R    Let’s you search through previously used commands
Ctrl + C    Kill whatever you are running
Ctrl + D    Exit the current shell
Ctrl + Z    Puts whatever you are running into a suspended background process. fg restores it.
Ctrl + W    Delete the word before the cursor
Ctrl + K    Clear the line after the cursor
Ctrl + T    Swap the last two characters before the cursor
Esc + T     Swap the last two words before the cursor
Alt + F     Move cursor forward one word on the current line
Alt + B     Move cursor backward one word on the current line
Tab     Auto-complete files and folder names

Phím Control, như bạn có thể thấy ở trên, được tạo bằng Cm, vì vậy bạn có thể bắt đầu lệnh less bằng Ctrl-g, như sau:

liên kết '"\ Cg"': "\" \ | ít hơn * \ Cm \ ""

Để lấy mã khóa cho Alt (chỉ dành cho ALT), bạn có thể sử dụng lệnh đọc từ trình bao:

@~$ read
^[y

^ [y bằng \ eye

Để biết thêm thông tin, câu hỏi này cũng đã được trả lời trong stackoverflow:

/programming/4119991/bash-call-script-with-customized-keyboard-shortcut


cảm ơn, làm thế nào tôi có thể xóa một ràng buộc hoặc hiển thị tất cả các ràng buộc?
NES

có gì đó không đúng với 2 ví dụ đầu tiên của bạn nó luôn luôn in ký tự đại diện sau ít hơn sau khi tôi được gán với cú pháp ràng buộc của bạn.
NES

liên kết -p và liên kết -P sẽ hiển thị cho bạn tất cả các liên kết. Tôi đã phạm sai lầm với các ngôi sao ... Tôi cập nhật câu trả lời
tmow

cảm ơn rất nhiều. có lẽ bạn có một ý tưởng làm thế nào để đạt được mục tiêu tương tự ở cá? Tôi đã làm cho đến nay để làm việc nhưng vấn đề là cá dường như tự động thực thi lệnh thay vì chỉ thêm chuỗi vào dòng lệnh theo mặc định. đây là manpage linux.die.net/man/1/bind Thật không may, ví dụ này không hữu ích lắm cho trường hợp của tôi.
NES

Đây đã là một chức năng tích hợp sẵn, tôi nghĩ fishshell.com/user_doc/index.html#editor kiện phím tắt Alt-p
tmow
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.