Как настроить less на распознавание Ctrl-Left, Ctrl-Right

В руководстве less сказано, что вы можете использовать CtrlLeft и CtrlRight для перемещения курсора на одно слово при редактировании строки (например, при вводе строки поиска):

^LEFTARROW [ ESC-b or ESC-LEFTARROW ]
     (That is, CONTROL and LEFTARROW simultaneously.)  Move the
     cursor one word to the left.

Когда я пробую это, вместо этого вводится печатное представление управляющей последовательности, отправленной моим терминалом. CtrlLeft вводит ESC[1;5D, а Ctrl-Right вводит ESC[1;5C.

Мой терминал настроен на отправку ^[[1;5D и ^[[1;5C для CtrlLeft и CtrlRight, соответственно, и я поместил это в свой ~/. inputrc, чтобы Readline выполнял переходы по словам, когда я нахожусь в оболочке (Bash),

# Ctrl-Left
"\033[1;5D": backward-word
# Ctrl-Right
"\033[1;5C": forward-word

Предположительно less ожидает какой-то другой последовательности управления? Я немного не решаюсь изменить управляющие последовательности, которые посылает мой терминал, только чтобы удовлетворить less, опасаясь, что это приведет к сбоям в Vim или Readline, но я готов попробовать.

0
19.06.2017, 14:50
1 ответ

Настройте привязки клавиш less таким образом, чтобы последовательность \e[1;5Dзапускала word-left, а \e[1;5Cзапускала `слово -правильно.

В файл ~/.lesskeyдобавить

#line-edit
\e[1;5D    word-left
\e[1;5C    word-right

Если раздел #line-editуже существует, добавьте необходимые строки.

Затем запуститеlesskey. Эта программа-компаньон преобразует~/.lesskey(удобочитаемый для человека -синтаксис )в двоичный формат ~/.less, используемый less.

2
28.01.2020, 02:33

Теги

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