Saya ingin memetakan pengikat tombol
Ctrl+ Shift+ Tabdi rxvt-unicode
. Saya berhasil memetakan Ctrl+ Tabsebagai berikut. Entri yang sesuai dalam .Xresources
adalah
URxvt.keysym.Control-Tab: \033[27;5;9~
Menggunakan cat -v
mengkonfirmasi bahwa pemetaan ini berfungsi:
$ cat -v
^[[27;5;9~
Urutan ^[[27;5;9~
kemudian dapat digunakan dalam aplikasi seperti
vim
untuk memetakan Ctrl+ Tab. Saya berharap .Xresources
entri berikut berfungsi sama.
URxvt.keysym.Control-Shift-Tab: \033[27;6;9~
Namun, cat
tidak menunjukkan pemetaan yang benar:
$ cat -v
^[[Z
Bagaimana cara mengatur pemetaan Ctrl+ Shift+ Tab?
Edit
Pemetaan
URxvt.keysym.Control-ISO_Left_Tab: \033[27;6;9~
URxvt.keysym.Control-Shift-ISO_Left_Tab: \033[27;6;9~
berperilaku sama. Setelah menekan Ctrl+ pertama Tab, melepaskan keduanya lalu menekan Return dua kali lalu menekan Ctrl+ Shift+ Tab, melepaskan semua lalu menekan Return dua kali saya mendapatkan output berikut:
$ cat -v
^[[27;5;9~
^[[27;5;9~
^[[27;6;9~↵
^[[27;6;9~M-bM-^FM-5
- Kasus Ctrl+ Tab: Pengembalian pertama membuat input muncul lagi sebagai output.
- Kasus Ctrl+ Shift+ Tab: Pengembalian pertama menghasilkan tanda
↵
, pengembalian kedua menghasilkan baris terakhir yang ditunjukkan di atas.
Sunting selanjutnya: Informasi lebih lanjut
Apa yang terjadi jika Anda menekan ctrl-shift (lepaskan keduanya tanpa menekan tombol apa pun), lalu masuk, di jendela yang berbeda?
Di jendela urxvt yang berbeda? Ketika saya menekan Ctrl + Shift dan melepaskan kedua tombol kotak kuning nyaring muncul di sudut kiri bawah: KEYCAP PICTURE INSERT
MODE
tampaknya berasal dari urxvt, itu tidak muncul di aplikasi lain.
Atau bahkan hanya ctrl-shift-tab lalu masuk di jendela yang berbeda (maksud saya bukan rxvt, seperti di jendela gedit atau browser web atau sesuatu.)
Saya mendapat baris baru.
Apa yang terjadi jika Anda menekan shift + ctrl + tab [yaitu bergeser ke bawah, ctrl ke bawah, tab, ctrl ke atas, menggeser ke atas] sebagai gantinya, atau sebaliknya jika itu yang Anda lakukan?
Di 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)
Saya mencoba untuk mempersempit hal-hal karena saya pikir Anda mungkin memiliki semacam pemetaan pada "ctrl + shift" di xcompose atau sesuatu.
Bukannya aku sadar, tapi kamu tidak pernah tahu.
Apa output xev ketika Anda menekan "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
sumber
Ctrl-Tab
cat -v
output urutan yang disebutkan,Ctrl-Shift-Tab
mengeluarkan urutan yang benar^[[27;6;9~
namun penekanan tombol berikutnya tidak ditafsirkan seperti biasa. Padacat -v
outputCtrl-Shift-Tab
+ enter display sebagai^[[27;6;9~↵
, alih-alih dua baris^[[27;6;9~
(satu untuk input, satu untuk output). Pemetaan ini tidak akan berfungsi di vim. Anda punya ide lain?xev
ketika Anda menekan "ctrl + shift + tab, enter"?Jawaban:
Shift+ Tabsering dipetakan ke ISO_Left_Tabkeysym di X11, jadi beberapa program mungkin memerlukan ini alih-alih 'shift-tab' secara literal dalam konfigurasinya.
urxvt memiliki pemetaan aneh pada ctrl + shift, sepertinya Anda harus mengkompilasi ulang untuk menonaktifkannya: lihat halaman ini untuk detail lebih lanjut. EDIT Sepertinya dalam versi terbaru dari rxvt Anda cukup menambahkan
sumber
Saya sudah
S-Tab
bekerja dengan ini:dan dalam vim saya miliki
sumber
Sebagian jawaban: Anda dapat menonaktifkan mode Control-Shift ISO 14755 - setidaknya di URxvt modern - dengan menambahkan berikut ini ke file .Xdefaults Anda (atau mungkin .Xresources, tergantung pada sistem Anda):
sumber