В руководстве 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, но я готов попробовать.
Настройте привязки клавиш 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
.