
Я использую эти строки в своем ~/.inputrc
:
"\e[5~": history-search-backward
"\e[6~": history-search-forward
С этими настройками, когда я печатаю cв приглашении и делаю PageUp, bash показывает только команду, начинающуюся с cиз истории. PageDownделает ее обратное. Я нахожу это очень продуктивным для себя.
Без этих строк в моем файле inputrc, когда я делаю Ctrl+ Left, курсор переходит на одно слово влево, а Ctrl+ Leftделает наоборот. Но с этими настройками, упомянутыми выше, когда я делаю Ctrl+ Leftи Ctrl+, Rightон печатает ;5D
и ;5C
вместо этого.
Так как же мне заставить Ctrl+ Leftи Ctrl+ Rightделать правильные вещи?
решение1
Две readline
команды для этих перемещений — forward-word
и backward-word
. Вы можете получить к ним доступ, соответственно, используя (привязки emacs по умолчанию):
Altfи Altb.
Чтобы заставить их работать с помощью клавиш Leftи Right, вам нужно добавить пару строк в ваш ~/.inputrc
.
Сначала подтвердите правильные последовательности выхода, получив необработанный вывод с вашего терминала для этих нажатий клавиш: введите Ctrlv CtrlLeftи Ctrlv CtrlRightи запишите последовательность (что-то вроде ^[Oc
и ^[Od
). Затем добавьте эти строки в ваш .inputrc
:
"\eOc": forward-word
"\eOd": backward-word
Всекоманды readlineможет быть восстановлен в вашем .inputrc
.
решение2
обратите внимание, что эти последовательности могут отличаться от одного терминала к другому. Из вашего текста, похоже, вы используете gnome-terminal.
# on gnome-terminal
"\e[1;5D": backward-word
"\e[1;5C": forward-word