Bản đồ Control-Shift-Tab trong rxvt-unicode


9

Tôi muốn ánh xạ keybinding Ctrl+ Shift+ Tabin rxvt-unicode. Tôi quản lý để ánh xạ Ctrl+ Tabnhư sau. Các mục tương ứng trong .Xresources

URxvt.keysym.Control-Tab: \033[27;5;9~

Sử dụng cat -vxác nhận rằng ánh xạ này hoạt động:

$ cat -v
^[[27;5;9~

Trình tự ^[[27;5;9~sau đó có thể được sử dụng trong các ứng dụng như vimánh xạ Ctrl+ Tab. Tôi mong đợi các .Xresourcesmục sau đây để làm việc như nhau.

URxvt.keysym.Control-Shift-Tab: \033[27;6;9~

Tuy nhiên, catkhông hiển thị ánh xạ chính xác:

$ cat -v
^[[Z

Làm thế nào để thiết lập Ctrl+ Shift+ Tablập bản đồ?

Biên tập

Bản đồ

URxvt.keysym.Control-ISO_Left_Tab: \033[27;6;9~    
URxvt.keysym.Control-Shift-ISO_Left_Tab: \033[27;6;9~

cư xử như vậy Sau lần nhấn Ctrl+ đầu tiên Tab, nhả cả hai và sau đó nhấn Return hai lần rồi nhấn Ctrl+ Shift+ Tab, giải phóng tất cả và sau đó nhấn Return hai lần tôi nhận được kết quả đầu ra sau:

$ cat -v
^[[27;5;9~
^[[27;5;9~


^[[27;6;9~↵
^[[27;6;9~M-bM-^FM-5
  • Trường hợp Ctrl+ Tab: Trả về đầu tiên làm cho đầu vào xuất hiện lại dưới dạng đầu ra.
  • Trường hợp Ctrl+ Shift+ Tab: Lợi nhuận đầu tiên tạo ra dấu hiệu , lợi nhuận thứ hai tạo ra dòng cuối cùng được hiển thị ở trên.

Chỉnh sửa tiếp theo: Thêm thông tin

Điều gì xảy ra nếu bạn nhấn ctrl-shift (nhả cả hai mà không nhấn bất kỳ phím nào), sau đó nhập, trong một cửa sổ khác?

Trong một cửa sổ urxvt khác nhau? Khi tôi nhấn Ctrl + Shift và nhả cả hai phím, một hộp màu vàng rõ ràng xuất hiện ở góc dưới bên trái: KEYCAP PICTURE INSERT MODEnó dường như đến từ urxvt, nó không xuất hiện trong các ứng dụng khác.

Hoặc thậm chí chỉ cần ctrl-shift-tab sau đó nhập vào một cửa sổ khác (ý ​​tôi không phải là rxvt, như trong cửa sổ gedit hoặc trình duyệt web hoặc một cái gì đó.)

Tôi nhận được một dòng mới.

Điều gì xảy ra nếu bạn nhấn shift + ctrl + tab [tức là dịch chuyển xuống, ctrl xuống, tab, ctrl lên, dịch chuyển lên] hoặc ngược lại nếu đó là những gì bạn đang làm?

Trong urxvt?

$ cat -v
shift+ctrl+tab then enter: ^[[27;6;9~
ctrl+shift+down: ↓
ctrl+shift+up: ↑
shift+down: ^[[b
shift+up: ^[[a
ctrl+down: ^[Ob
ctrl+up: ^[Oa
tab: |       | (tab)

Tôi đang cố gắng thu hẹp mọi thứ vì tôi nghĩ rằng bạn có thể có một số loại ánh xạ trên "ctrl + shift" trong xcompose hoặc một cái gì đó.

Không phải tôi biết, nhưng bạn không bao giờ biết.

Đầu ra của xev là gì khi bạn nhấn "ctrl + shift + tab, enter"?

KeyPress event, serial 32, synthetic NO, window 0x4800001,
    root 0xb4, subw 0x0, time 311734869, (567,395), root:(567,411),
    state 0x0, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 35, synthetic NO, window 0x4800001,
    root 0xb4, subw 0x0, time 311734971, (567,395), root:(567,411),
    state 0x4, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 35, synthetic NO, window 0x4800001,
    root 0xb4, subw 0x0, time 311736110, (567,395), root:(567,411),
    state 0x5, keycode 23 (keysym 0xfe20, ISO_Left_Tab), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x4800001,
    root 0xb4, subw 0x0, time 311736494, (567,395), root:(567,411),
    state 0x5, keycode 23 (keysym 0xfe20, ISO_Left_Tab), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x4800001,
    root 0xb4, subw 0x0, time 311736525, (567,395), root:(567,411),
    state 0x5, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x4800001,
    root 0xb4, subw 0x0, time 311736525, (567,395), root:(567,411),
    state 0x4, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 35, synthetic NO, window 0x4800001,
    root 0xb4, subw 0x0, time 311737530, (567,395), root:(567,411),
    state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
"   XLookupString gives 1 bytes: (0d) "
"   XmbLookupString gives 1 bytes: (0d) "
    XFilterEvent returns: False

KeyRelease event, serial 35, synthetic NO, window 0x4800001,
    root 0xb4, subw 0x0, time 311737633, (567,395), root:(567,411),
    state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
"   XLookupString gives 1 bytes: (0d) "
    XFilterEvent returns: False

Tôi không biết điều này có hoạt động không, vì vậy chưa đăng bài dưới dạng câu trả lời, nhưng hãy thử Control-Shift-ISO_Left_Tab hoặc Control-ISO_Left_Tab.
Random832

@ Random832 Nó chắc chắn là một điểm nhấn theo đúng hướng, nhưng ánh xạ hành xử kỳ lạ. Khi tôi nhấn Ctrl-Tab cat -vđầu ra trình tự đã đề cập, Ctrl-Shift-Tabđầu ra trình tự chính xác ^[[27;6;9~tuy nhiên lần nhấn phím tiếp theo không được diễn giải như bình thường. Trong cat -vđầu ra Ctrl-Shift-Tab+ enter hiển thị dưới dạng ^[[27;6;9~↵, thay vì hai dòng ^[[27;6;9~(một cho đầu vào, một cho đầu ra). Ánh xạ này sẽ không hoạt động trong vim. Bạn có ý tưởng khác không?
Marco

Giống như một biểu tượng chữ?? Bạn có phát hành ctrl-shift trước khi bạn nhấn enter không? Cái nào trong hai ánh xạ tôi đề nghị đã làm việc, vì vậy tôi có thể bắt đầu viết câu trả lời?
Random832

@ Random832 Tôi đã thêm thông tin chi tiết (xem chỉnh sửa). Cảm ơn cho nỗ lực của bạn cho đến nay.
Marco

Điều gì xảy ra nếu bạn nhấn ctrl-shift (nhả cả hai mà không nhấn bất kỳ phím nào), sau đó nhập, trong một cửa sổ khác? Hoặc thậm chí chỉ cần ctrl-shift-tab sau đó nhập vào một cửa sổ khác (ý ​​tôi không phải là rxvt, như trong cửa sổ gedit hoặc trình duyệt web hoặc một cái gì đó.) Điều gì xảy ra nếu bạn nhấn shift + ctrl + tab [tức là dịch chuyển xuống, ctrl xuống , tab, ctrl lên, tăng lên] thay vào đó, hoặc ngược lại nếu đó là những gì bạn đang làm? Tôi đang cố gắng thu hẹp mọi thứ vì tôi nghĩ rằng bạn có thể có một số loại ánh xạ trên "ctrl + shift" trong xcompose hoặc một cái gì đó. Đầu ra của xevkhi bạn nhấn "ctrl + shift + tab, enter" là gì?
Random832

Câu trả lời:


2

Shift+ Tabthường được ánh xạ tới các ISO_Left_Tabkeyym trong X11, vì vậy một số chương trình có thể cần điều này thay vì một 'tab shift' theo nghĩa đen trong cấu hình của chúng.

urxvt có một ánh xạ lạ trên ctrl + shift, có vẻ như bạn sẽ phải biên dịch lại để vô hiệu hóa nó: xem trang này để biết thêm chi tiết. EDIT Có vẻ như trong các phiên bản gần đây của rxvt, bạn chỉ cần thêm

URxvt.iso14755_52: False

3

Tôi đã S-Tablàm việc với điều này:

URxvt.keysym.C-Tab: \033{
URxvt.keysym.Control-Shift-ISO_Left_Tab: \033} 
! disable ctrl-shift
URxvt*iso14755: False 
URxvt*iso14755_52: False

và trong vim tôi có

nmap ^[{ :tabnext<cr>
imap ^[{ <ESC>:tabnext<cr>
nmap ^[} :tabprevious<cr>
imap ^[} <ESC>:tabprevious<cr>

1

Câu trả lời một phần: Bạn có thể tắt chế độ Control-Shift ISO 14755 - ít nhất là trong URxvt hiện đại - bằng cách thêm phần sau vào tệp .Xdefaults của bạn (hoặc có thể .Xresource, tùy thuộc vào hệ thống của bạn):

URxvt.iso14755:    false
URxvt.iso14755_52: false
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.