Trình tự thoát ANSI của thiết bị đầu cuối gnome cho mũi tên CTRL + mũi tên / s là gì?


10

Tôi đang cố gắng định cấu hình bash của mình ~/.inputrctheo các cài đặt này
(Lưu ý : , có nghĩa là các phím mũi tên trái và phải)

  • Ctrl+ - nên nhảy lại một từ
  • Ctrl+ - nên nhảy về phía trước một từ

Hiện tại tôi có cái này trong tôi ~/.inputrcvà nó không hoạt động. Ctrl + arrowsản xuất không có gì.

"\eC-5C":forward-word
"\eC-5D":backward-word

Tôi chắc rằng trình tự thoát của tôi là sai.
Trình tự thoát chính xác cho các Ctrl + arrowkết hợp là gì?

  • thiết bị đầu cuối: tmux bên trong thiết bị đầu cuối gnome

Câu trả lời:


14

Gnome-terminal (đúng hơn là VTE ) bắt chước một số phiên bản của chuỗi thoát của xterm. Làm thế nào chặt chẽ nó làm điều này, phụ thuộc vào phiên bản của VTE.

Tài liệu xterm có liên quan nằm trong phần Phím chức năng kiểu PC của Trình tự điều khiển XTerm .

Những gì bạn đang tìm kiếm là một chuỗi như \e[1;5D(đối với mũi tên trái điều khiển), trong đó 5biểu thị công cụ controlsửa đổi.

Trong ncurses, bạn có thể nhìn thấy những chuỗi sử dụng infocmp -x, như các giá trị cho kUP5, kDN5, kLFT5kRIT5. Ví dụ:

    kDN5=\E[1;5B,
    kLFT5=\E[1;5D,
    kRIT5=\E[1;5C,        
    kUP5=\E[1;5A,

cảm ơn đã phản hồi và liên kết đến các nguồn lực. Điều này giải quyết các vấn đề đối với tôi!
the_velour_fog 14/2/2016

16

Cách đơn giản nhất để tìm các mã của chuỗi khóa là gì để sử dụng ctrl- v.

Vì vậy, bạn gõ ctrl Vctrl để có được:

^[[1;5C

Đó là một cách để viết ESC[1;5Choặc \e[1;5C.


Ồ, tuyệt vời. Bạn có biết rằng đó là một tính năng dự định của gnome-terminal, hay nó là thứ gì đó được phát hiện ra một cách tình cờ?
the_velour_fog 14/2/2016

Cả zsh ( bindkey|grep 'quoted-insert') và bash ( bind -p|grep 'quoted-insert') đều có ràng buộc khóa để xuất mã khóa được đặt thành <c-v>.
kba đứng với Monica

1
Để biết giá trị của nó, Ctrl-V thực hiện chức năng tương tự trong chế độ Chèn và Lệnh của Vim.
joeytwiddle

4
@the_velour_fog Ctrl + V có nghĩa là chèn ký tự tiếp theo thay vì diễn giải nó như một lệnh đầu cuối, ngày bắt đầu từ những ngày đầu của Unix. Đây là một tính năng của xử lý dòng lệnh của kernel được mô phỏng bởi các hệ thống đầu vào tinh vi hơn như bash, zsh, vi, ...
Gilles 'SO- ngừng trở thành ác quỷ'

1
@kba Đối với hồ sơ, họ không phải là người duy nhất. Bash thực sự được cung cấp bởi thư viện GNU Readline mà nó phụ thuộc, nó cũng liên kết nó <c-q>để khớp với khóa Emacs mà nó sao chép. Zsh cũng liên kết nó với cả hai <c-v><c-q>chỉ khi bạn bật chế độ Vim, thật trớ trêu thay. Readline cũng được sử dụng bởi những thứ khác như sự import rlcompletertăng cường của Python . (Nguồn: tiswww.case.edu/php/chet/readline/readline.html#SEC9man zshzle)
ssokolow
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.