xinput - Ctrl+ведет себя неправильно, если отображается history-search-backward

xinput - Ctrl+ведет себя неправильно, если отображается history-search-backward

Я использую эти строки в своем ~/.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

Связанный контент