Định dạng chung của tên khóa cho các ràng buộc chính trong tập tin đầu vào là gì?


17

Tôi hiểu rằng định dạng cho các ràng buộc chính trong inputrctệp là:

keyname: function-name or macro

Đối với tên khóa, tôi thấy những thứ như:

"\e[B"
"\e[1~"
"\e[5D"
"\M-l"
"\C-[OD"
"\e\e[D"

Ý nghĩa của các tên khóa này là gì và định dạng chung cho tên khóa là gì? Vui lòng chia sẻ một liên kết đến tài liệu.


2
Đối với tài liệu của bạn, tôi khuyên bạn nên xem readline(3)trang hướng dẫn hoặc hướng dẫn sử dụng readline .
jw013

1
Kiểm tra cấu hình khóa của bạn (readline - inputrc) qua: $ bind -p
vigo

Câu trả lời:


12

Keybinding có thể được thực hiện bằng một trong các hình thức sau:

  1. tên khóa: Command_name
  2. "keystroke_ resultence": command_name

Ở dạng đầu tiên, bạn có thể đánh vần tên cho một khóa. Ví dụ, CONTROL-U sẽ được viết dưới dạng control-u. Điều này rất hữu ích để liên kết các lệnh với các phím đơn.

Ở dạng thứ hai, bạn chỉ định một chuỗi mô tả một chuỗi các khóa sẽ được liên kết với lệnh. Ví dụ bạn đã đưa ra là các chuỗi thoát dấu gạch chéo ngược emacs-tyle để thể hiện các khóa đặc biệt

\C- Kiểm soát
\M- Meta
\e- Thoát

Bạn có thể chỉ định dấu gạch chéo ngược bằng cách sử dụng dấu gạch chéo ngược khác - \\. Tương tự '"có thể được thoát quá - \'\"

Cập nhật

Các ký tự này là những gì được thiết bị đầu cuối của bạn diễn giải khi bạn nhấn các phím đặc biệt. Bạn không muốn liên kết bảng chữ cái và chữ số thông thường trong ràng buộc khóa của mình vì bạn có thể sử dụng chúng thường xuyên và có thể gây ra sự cố khi bạn vô tình nhấn vào một kết hợp đã được ánh xạ trong tệp ~/.inputrchoặc /etc/inputrctệp của bạn .

[1~ is what is interpreted by your terminal when you press your HOME button. 

Để tìm hiểu thêm, chỉ cần nhập readvào dấu nhắc thiết bị đầu cuối của bạn và nhấn tất cả các loại phím đặc biệt như Phím chức năng, HOME, END, Phím mũi tên, v.v. và xem những gì được hiển thị.

Đây là một tài liệu tham khảo nhỏ mà tôi thấy có thể cung cấp một số hiểu biết cơ bản. Chúc may mắn! :)


2
Không gì \e[1~, \M-l\C-[ODnghĩa là gì? Các \e, \M\Ccác bộ phận là rõ ràng. Phần còn lại thì sao? Ví dụ: [1~- Tôi có nên nhấn Shift+ {+ 1+ Shift+ `không?
Misha Moroshko

Tôi đã cập nhật câu trả lời cho bạn. Mong rằng sẽ giúp!
jaypal singh

Liên kết bị hỏng. Vẫn không biết dấu ngã hoặc dấu ngoặc mở dùng để làm gì ??
Carl Smith
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.