Putty SSH: клавиши CTRL + курсор не работают, пропустите предыдущее / следующее слово

10439
user26767

Когда я подключаюсь к своему локальному серверу разработки Ubuntu с помощью putty (из моего окна Windows 7) через SSH, следующие комбинации клавиш не работают для перемещения курсора вперед и назад на границах слов:

  • Ctrl+ Left Arrowна курсоре
  • Ctrl+ Right Arrowна курсоре

Курсор перемещается только на один символ за раз. Я использую Bash.

27
bash по умолчанию использует привязки клавиш Emacs, поэтому `Alt + B` и` Alt + F` будут двигаться вперед / назад на одно слово. Вы можете изменить привязки к vi, если хотите, и перейти на `w` phuclv 6 лет назад 0

2 ответа на вопрос

37
Dennis Williamson

Добавьте эти две строки в ваш ~/.inputrcфайл на конечном компьютере:

"\eOD": backward-word "\eOC": forward-word 

Для того, чтобы убедиться, что они правильные последовательности, в строке типа Bash Ctrl- V Ctrl- LeftArrowи Ctrl- V Ctrl- RightArrow, вы должны увидеть:

^[OD^[OC 

Когда вы начинаете новый сеанс, ключи будут доступны, или вы можете нажать Ctrl- xCtrl-, rчтобы перечитать ~/.inputrcфайл текущего сеанса.

Будет ли работать подобный трюк для удаления целых слов? Casebash 13 лет назад 0
@Casebash: попробуйте `bind -P | grep kill-word`, чтобы показать вам существующие привязки клавиш для удаления целых слов. При необходимости вы можете изменить привязки аналогично моему ответу выше. Dennis Williamson 12 лет назад 0
Я заметил, что OpenSuSE (12.3) уже связал эти последовательности с `backward-char` и` forward-char`, поэтому вместо того, чтобы просто добавлять эти строки, мне пришлось заменить строки, которые уже содержали привязки. palswim 10 лет назад 0
Большой! Я работал на Ubuntu 14.04, и моя шпаклевка работает на Windows 7. Edwin Yip 8 лет назад 0
Не работает с Putty на win10 nZeus 6 лет назад 0
@nZeus: последовательности символов могут отличаться в вашем случае. Что выводят последовательности `Ctrl` для вас? Dennis Williamson 6 лет назад 0
Это работает сейчас. Я думал, что должен создать этот файл на клиентском ПК, но я просто попытался сделать это на сервере, и теперь он работает: +1: nZeus 6 лет назад 0
3
Meetai.com

Для консоли Linux:

"\e[1~": beginning-of-line "\e[4~": end-of-line "\e[5~": beginning-of-history "\e[6~": end-of-history "\e[3~": delete-char "\e[2~": quoted-insert 

7.7. Создание файла / etc / inputrc

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