Какова escape-последовательность ANSI терминала gnome для «CTRL + стрелка / с»?

10

Я пытаюсь настроить мой Баш ~/.inputrcэти настройки
(Примечание: , означают клавиши со стрелками влево и вправо)

  • Ctrl+ - должен вернуться на слово
  • Ctrl+ - должен прыгнуть вперед на слово

В настоящее время у меня есть это в моем, ~/.inputrcи это не работает. Ctrl + arrowничего не производит.

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

Я уверен, что моя последовательность побега неверна.
Каковы правильные escape-последовательности для Ctrl + arrowкомбинаций?

  • терминал: tmux внутри гном-терминала
the_velour_fog
источник

Ответы:

14

Gnome-терминал (точнее VTE ) имитирует некоторую версию escape-последовательностей xterm. Насколько тесно это происходит, зависит от версии VTE.

Соответствующая документация xterm находится в разделе « Функциональные клавиши стиля ПК» в разделе « Последовательности управления XTerm» .

То, что вы ищете, это строка типа \e[1;5D(для левой стрелки управления), где 5символ обозначает controlмодификатор.

В Ncurses, вы можете увидеть эти строки с использованием infocmp -x, в качестве значений для kUP5, kDN5, kLFT5и kRIT5. Например:

    kDN5=\E[1;5B,
    kLFT5=\E[1;5D,
    kRIT5=\E[1;5C,        
    kUP5=\E[1;5A,
Томас Дики
источник
спасибо за ответ и ссылку на ресурсы. Это решило проблему для меня!
the_velour_fog
16

Самый простой способ найти то , что являются коды ключевой последовательности для использования ctrl- v.

Итак, вы набираете ctrl Vи ctrl получаете:

^[[1;5C

Какой способ написать ESC[1;5Cили \e[1;5C.


источник
Вау здорово. Знаете ли вы, что это предназначенная особенность gnome-терминала, или это что-то, что было обнаружено случайно?
the_velour_fog
Оба zsh ( bindkey|grep 'quoted-insert') и bash ( bind -p|grep 'quoted-insert') имеют привязку клавиш для вывода кодов ключей, установленных на <c-v>.
KBA стоит с Моникой
1
Для чего это стоит, Ctrl-V выполняет ту же функцию в режимах вставки и команды Vim.
Joeytwiddle
4
@the_velour_fog Ctrl + V, означающий «вставить следующий символ вместо того, чтобы интерпретировать его как терминальную команду», восходит к ранним дням Unix. Это особенность обработки командной строки в ядре, которой подражают более сложные системы ввода, такие как bash, zsh, vi, ...
Жиль "ТАК - перестать быть злым"
1
@kba Для справки, они не единственные. Bash на самом деле предоставляется библиотекой GNU Readline, от которой он зависит, что также связывает его <c-q>с ключом Emacs, который он копирует. Zsh также связывает его как <c-v>и , <c-q>но только если вы включите режим Vim, достаточно иронически. Readline также используется другими вещами, такими как import rlcompleterулучшение Python . (Источники: tiswww.case.edu/php/chet/readline/readline.html#SEC9 и man zshzle)
ssokolow