Как связать 'вкладку' и 'shift+tab' на экране GNU?

Просто добавьте сценарий удара к приложениям Запуска.

В поле команды войти

bash /full/path/to/bash/script.sh/
4
20.12.2018, 02:18
2 ответа

Вопреки bindkey где можно указать последовательности символов, с bind, единственный путь при помощи bind -k CAP где ОГРАНИЧЕНИЕ является a termcap ключевая возможность.

Например,

bind -k ku focus up

работы для привязки последовательности символа, отправленного на До focus up. Для backtab, который должен быть:

bind -k kB focus up

К сожалению, по некоторым причинам, это не видит для работы. Не уверенный, почему. Моя первая интерпретация была неправильной. Это кажется, что имеет некоторое отношение с ncurses не обрабатывая termcap эквивалент kcbt правильно:

$ infocmp -1 | grep Z
    cbt=\E[Z,
    kcbt=\E[Z,
$ infocmp -1C | grep Z
    :bt=\E[Z:\

(kcbt не переведен в КБ).

Если я добавляю к моему ~/.screenrc:

 termcapinfo * kr=\E[Z
 bind -k kr focus up

Таким образом, если я говорю screen то, что безотносительно хоста termincal (*), F63 (kr) отправляет \E[Z, и свяжите F63 с focus up, затем это работает. Однако обратите внимание, что нажатие Shift+Tab теперь отправляет в экране \EOC, который является последовательностью символов, которую эмулятор терминала, которые экранируют реализации (в противоположность терминалу хоста) отправляет на F63.

2
27.01.2020, 21:00
  • 1
    я не вполне получил этот ответ и он не работал на меня. свяжите не имеет-k опции здесь (по крайней мере, не зарегистрированной). Я получаю также "символ, ^x, или (восьмеричные) \032, ожидаемые" с Вашим связывать cmds. Но спасибо за справку так или иначе –  ricab 28.10.2013, 16:02
  • 2
    OK, я изобразил Вас, вероятно, означал, что bindkey вместо связывают. Попробованный это и это теперь Shift+TAB действительно фокусируется. Но не после Ctrl+A как с вкладкой, таким образом, это все еще не симметрично. Я в основном хотел иметь C-a shit-tab будьте симметричным из значения по умолчанию C-a tab –  ricab 28.10.2013, 16:09
  • 3
    @ricab, bind -k работы для меня, хотя это не зарегистрировало (4.01.00devel) –  Stéphane Chazelas 28.10.2013, 17:11
  • 4
    Интересный, это не работает здесь (4.00.03 (FAU)). Я получаю ошибку bind: character, ^x, or (octal) \032 expected –  ricab 28.10.2013, 18:19
bindkey -k kB stuff ^[OZ
bind -k kB focus up

В моем случае проблема заключается в том, что строка, вставляемая при нажатии Ctrl + A-Shift + Tab , представляет собой ^[[Zпосле Ctrl + A , что означает

  • ^[войти в режим копирования/прокрутки
  • [прервать
  • , а затем показатьZ

т. е. стандартная escape-последовательность символов стиля VT100 конфликтует с последовательностью символов режима копирования/прокрутки. Поэтому я добавил привязку клавиш для имени termcap задней вкладки kB, чтобы изменить строку, вставленную во входной буфер, когда Shift + Tab нажата на ^[OB.

См. раздел «ПЕРЕВОД ВВОДА» на справочной странице экрана.

0
22.12.2020, 04:59

Теги

Похожие вопросы