Я искал и не мог найти решение для этого нигде. Я использую PuTTY из Windows для подключения к различным серверам, на которых я запускаю bash и screen. Кажется, bash отлично работает с клавишами со стрелками Ctrl для перехода между словами в командной строке, но на экране это не работает. Вне экрана ctrl-left отправляет «^ [OC, а ctrl-right - это« ^ [OD »». На экране вместо этого я получаю «^ [[C» и «^ [[D» », которые, по-видимому, являются кодами просто клавиши со стрелками влево / вправо. Есть ли способ заставить экран распознавать клавиши со стрелками ctrl при использовании PuTTY? (К вашему сведению, я не помню, чтобы эта проблема возникала при использовании gnu-терминала в linux вместо PuTTY).
ОБНОВЛЕНИЕ: Кажется, проблема заключается в PuTTY, так как он не отправляет управляющие коды, необходимые для того, чтобы это работало. Я сейчас сдаюсь и использую Cygwin + mintty.
источник
^[[1;5A
Ctrl-Up, который представляется более правильным, согласно code.google.com/p/mintty/wiki/Keycodes#Cursor_keysОтветы:
Редактировать:
Вот что сработало для меня:
~/.bashrc
наборыTERM=xterm
(мои, оказывается,TERM=xterm-256colors
) переопределяющие экраныTERM=screen
tput smkx
в приглашении BashТеперь клавиши Ctrl-Arrow переходят слово за словом
В информационных целях, если я делаю:
tput smkx | hexdump -c
я получаю
0000000 033 [ ? 1 h 033 =
и
tput rmkx | hexdump -c
дает мне
0000000 033 [ ? 1 l 033 >
Я думаю, что есть способ превратить это во что-то немного лучше, но это то, что у меня так далеко, и, похоже, это работает.
Оригинальный ответ:
От
info screen
:А у VT100 нет кодов клавиш Ctrl-Arrow.
источник
set -o vi
(если вы такой человек :)set -o vi
включает режим командной строки vi, чтобы вы могли нажиматьESC
и использовать клавиши vi для перемещения и редактирования командной строки.Как упомянуто здесь , вы можете поместить в ~ / .inputrc:
Это сработало для меня.
источник
$include /etc/inputrc
в верхней части.inputrc
файла есть, иначе readline не будет читать общесистемные привязки, а ключи, такие как Home и End, сломаются.Я несколько удивлен, что вы заставили Putty отправлять ctrl-стрелки правильно, даже не используя screen, поскольку это никогда не работало для меня. Мое решение состояло в том, чтобы переключиться на использование alt-arrowkeys (meta-arrowkeys), которые, по моему мнению, имеют одинаковую привязку вперед / назад в bash по умолчанию, хотя мне пришлось выполнить пару дополнительных команд, чтобы zsh распознал их:
источник
В случае, если другие найдут этот старый вопрос, как я, более свежее решение:
http://stuff.mit.edu/afs/athena/project/bsd/src/tmux-1.3/FAQ
источник
Вы должны заглянуть в документацию terminfo, ncurses, screen и putty, если хотите правильно отладить / настроить. Также ярлыки bash могут быть настроены с помощью inputrc. Загляните в справочные страницы bash и найдите inputrc.
источник
У вас есть правильная кодировка символов в Putty? Если вы подключаетесь к серверу в UTF-8 и ваша шпаклевка находится в стандартной кодировке, в vim пишутся клавиши со стрелками. Если Putty находится в UTF-8, вы можете перемещать курсор. Может быть, это то же самое в вашем случае ...
источник
В вашей конфигурации замазки в Терминале -> Возможности есть несколько флажков «отключить». Возможно, вы захотите попробовать отключить клавиши курсора приложения или режим клавиатуры приложения - иногда замазка пытается быть «слишком умной» и отправляет управляющие символы, которые не совместимы с сервером.
источник
Я использую Терминал> Клавиатура> Функциональные клавиши> Xterm R6, который помогает с функциональными клавишами htop (поиск f4 и т. Д.) Работать должным образом.
Я обнаружил, что вместо использования CTRL + стрелка, ALT + стрелка переходит слова вместо.
источник