Клавиши Home, End, PageUp, PageDown все вводят a ~
в моем сеансе bash вместо перемещения курсора / вида вокруг. Почему это происходит и какие настройки мне нужно изменить?
GNU bash, version 4.0.28(1)-release (x86_64--netbsd)
PuTTY v0.60
Вопрос изначально читал:
В PuTTY, почему нажатие клавиши «Home» на оболочке (bash) набирает «~»? Или, скорее, как заставить его переместить курсор в начало введенной мной команды?
(Я думал, что причина в том, что ~ является домашним каталогом, но ответы говорят, что это не так.)
Terminal -> Keyboard
«Функциональные клавиши и клавиатура».Это происходит потому, что у вас неверно установлен тип терминала PuTTY или на вашем сервере не установлены правильные определения terminfo.
В системах Debian основы, тот Ncurses срок пакет (версия 5.7 + 20081213-1) включает в себя Terminfo файлов определения для шпаклевки , замазки-256 - цветных и шпатлевка-VT100 типов терминалов. Если у вас установлен этот пакет, вы можете установить "строку типа терминала" в "putty" вместо значения по умолчанию "xterm" в конфигурации сеанса Putty (Соединение -> Данные).
Стивен Айронс также упоминает «linux» как еще один тип терминала, который работает; Я верю, что это верно из предыдущего опыта, но недавно не проверял.
В моих системах это позволяет Home и End работать правильно, хотя PageUp / PageDown не прокручивают окно консоли. (Они правильно работают в приложениях ncurses, таких как aptitude , и Shift-PgUp / Shift-PgDn прокручивают окно консоли.)
источник
TERM=putty
илиTERM=putty-256color
является мудрым, хотя, к сожалению, в настоящее время последний, кажется, не работает правильно для цветов 8-15 (которые должны быть яркими версиями 0-7). Остальные «решения», скорее всего, иногда теряют популярность из-за их вопиющего игнорирования различий между задействованными терминалами.yum install ncurses-term
разобрал его для меня на CentOS 7 с замазкой при следующем входе в систему, спасибо.putty
работу, но нарушает поддержку мыши в стиле xterm (например, для Midnight Commander)Если вы хотите проверить, какой код отправляется PuTTY на ваш терминал, когда вы нажимаете клавишу или комбинацию клавиш, вам просто нужно
Ctrl+V
нажать a, а затем нажать нужную клавишу.Например, на моем ящике нажатие клавиши Home создаст следующую строку на моем терминале:
Это означает, что PuTTY отправляет escape-символ ^ [, за которым следует строка [1 ~ .
Вы можете создать
~/.inputrc
файл в своей$HOME
папке или, в качестве альтернативы,/etc/inputrc
файл в зависимости от вашей системы. Затем заполните этот файл кодами PuTTY и соответствующими действиями Bash, которые вы хотите запустить Bash.Примечание. Замените каждый символ ^ [ эквивалентной строкой \ e
В моем примере я добавлю строку с моим кодом ключа Home и действием начала строки (с которым по умолчанию связан
Ctrl+A
Bash):К вашему сведению, мой файл inputrc имеет следующее содержимое:
От @Cimbali: Более привязываемые команды (например, предыдущая история: Переместить «вверх» по списку истории) доступны на этой странице ссылок .
источник
TERM=linux
илиTERM=putty
нарушить поддержку мыши как у xterm. Спасибо!Crtl + A ведет вас к началу линии
Вот список сочетаний клавиш Bash
источник
То, что он на самом деле отправляет, -
^[[1~
это управляющая последовательность терминала, состоящая из:Вы можете увидеть это, нажав Ctrl+ Vзатем Home.
Возможно, вам удастся решить вашу проблему, изменив настройку клавиатуры PuTTY для клавиш Home и End на rxvt (что делает escape-последовательность
^[[H
или изменив используемый вами $ TERM (или отредактировав~/.inputrc
).Между прочим, нет никакой связи между тильдой, которую вы получаете при нажатии, Homeи тильдой, которая представляет домашний каталог. Например, в моей настройке Page-Downвыводит
^[[6~
также тильду, если ее неправильно интерпретировать.источник
~
, и ни одна из настроек клавиатуры PuTTY не заставляет их работать. Мой bash испорчен, или это "нормально"?echo $TERM
?xterm
(Ограничение в 15 символов)"\eOw": end-of-line
(это заглавная буква O) в ваш~/.inputrc
файл.Ни один из этих вариантов не работал для меня. Я использую старую систему AIX. Я должен был добавить следующие псевдонимы в мой .profile
источник
Я не мог заставить его работать с другими методами. Однако я создал этот скрипт AutoHotkey, который работает, если ваша оболочка - Bash:
Однако используйте с осторожностью , поскольку не все эти горячие клавиши bash работают в других программах.
источник
screen
которая с настройками по умолчанию нарушает Ctrl-A, потому что она использует его как escape-символ ....