Управление картой-Shift-Tab в rxvt-unicode


9

Я хотел бы отобразить привязку клавиш Ctrl+ Shift+ Tabв rxvt-unicode. Мне удалось отобразить Ctrl+ Tabследующим образом. Соответствующая запись в .XresourcesIS

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

Использование cat -vподтверждает, что это отображение работает:

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

Последовательность ^[[27;5;9~может затем использоваться в приложениях, например vimдля отображения Ctrl+ Tab. Я ожидаю, что следующая .Xresourcesзапись будет работать так же.

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

Тем catне менее, не показывает правильное отображение:

$ cat -v
^[[Z

Как настроить отображение Ctrl+ Shift+ Tab?

редактировать

Отображения

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

вести себя так же. После первого нажатия Ctrl+ Tab, отпустив оба, затем Return дважды нажав и затем нажав Ctrl+ Shift+ Tab, отпустив все и затем Return дважды нажав, я получаю следующий вывод:

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


^[[27;6;9~↵
^[[27;6;9~M-bM-^FM-5
  • Case Ctrl+ Tab: при первом возврате вход снова отображается как выход.
  • Case Ctrl+ Shift+ Tab: первый возврат производит знак , второй возврат производит последнюю строку, показанную выше.

Следующее редактирование: Больше информации

Что произойдет, если вы нажмете Ctrl-Shift (отпустите обе кнопки без нажатия клавиш), а затем войдите в другое окно?

В другом окне urxvt? Когда я нажимаю Ctrl + Shift и отпускаю обе клавиши, в левом нижнем углу появляется резкое желтое поле: KEYCAP PICTURE INSERT MODEкажется, оно происходит из urxvt, но не отображается в других приложениях.

Или даже просто Ctrl-Shift-Tab, а затем войти в другое окно (я имею в виду не rxvt, как в окне Gedit или веб-браузер или что-то.)

Я получил новую строку.

Что произойдет, если вы нажмете shift + ctrl + tab [то есть shift вниз, ctrl down, tab, ctrl up, shift up] или наоборот, если это было то, что вы делали?

В 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)

Я пытаюсь сузить круг вещей, потому что я думаю, что у вас может быть какое-то отображение "ctrl + shift" в xcompose или что-то в этом роде.

Не то, чтобы я знал, но вы никогда не знаете.

Что выводит xev при нажатии "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

Я понятия не имею, будет ли это работать, поэтому пока не публикую в качестве ответа, но попробуйте Control-Shift-ISO_Left_Tab или Control-ISO_Left_Tab.
Random832

@ Random832 Это определенно толчок в правильном направлении, но отображение ведет себя странно. Когда я нажимаю, Ctrl-Tab cat -vвыводит упомянутую последовательность, Ctrl-Shift-Tabвыводит правильную последовательность, ^[[27;6;9~однако следующее нажатие клавиши не интерпретируется как обычно. В cat -vвыходной Ctrl-Shift-Tab+ ввод отображается как ^[[27;6;9~↵две строки ^[[27;6;9~(одна для ввода, одна для выхода). Это отображение не будет работать в VIM. У тебя есть другая идея?
Марко

Как буквальный символ ↵? Вы отпускаете Ctrl-Shift до того, как нажмете Enter? Какое из двух предложенных сопоставлений сработало, чтобы я мог начать писать ответ?
Random832

@ Random832 Я добавил более подробную информацию (см. Редактирование). Спасибо за ваши усилия.
Марко

Что произойдет, если вы нажмете Ctrl-Shift (отпустите обе кнопки без нажатия клавиш), а затем войдите в другое окно? Или даже просто Ctrl-Shift-Tab, а затем войти в другое окно (я имею в виду не RXVT, как в окне Gedit или веб-браузер или что-то.) Что произойдет, если вы нажмете Shift + Ctrl + Tab [т.е. Shift вниз, Ctrl вниз , tab, ctrl up, shift up] или наоборот, если вы этим занимались? Я пытаюсь сузить круг вещей, потому что я думаю, что у вас может быть какое-то отображение "ctrl + shift" в xcompose или что-то в этом роде. Что выводится, xevкогда вы нажимаете "Ctrl + Shift + Tab, ввод"?
Random832

Ответы:


2

Shift+ Tabчасто отображается в ISO_Left_Tabkeysym в X11, поэтому некоторым программам это может понадобиться вместо буквального «shift-tab» в их конфигурации.

У urxvt странное отображение на Ctrl + Shift, похоже, вам придется перекомпилировать, чтобы отключить его: смотрите эту страницу для более подробной информации. РЕДАКТИРОВАТЬ Похоже, в последних версиях rxvt вы можете просто добавить

URxvt.iso14755_52: False

3

Я S-Tabработал с этим:

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

и в VIM у меня есть

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

1

Частичный ответ: Вы можете отключить режим Control-Shift ISO 14755 - по крайней мере, в современном URxvt - добавив в файл .Xdefaults следующее (или, возможно, .Xresources, в зависимости от вашей системы):

URxvt.iso14755:    false
URxvt.iso14755_52: false
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.