Есть старый сервер, с которым я работаю, работает модифицированный FreeBSD 6.1 с выпуском bash 2.05b.0(1).

При нажатии клавиши «вверх» появляется последняя команда из истории, но я не могу получить доступ к последнему символу, так как строка на самом деле на один символ короче, чем отображается. Поэтому backspace бесполезен, а delete просто калечат последние несколько символов.

Терминал - это терминатор со следующими параметрами совместимости:

  • Клавиша Backspace генерирует: Control-H
  • Клавиша удаления создает: последовательность Escape

Мне было интересно, было ли это нормальное поведение этой версии bash, или какая-то проблема неправильной конфигурации / совместимости терминала.

Варианты Bash следующие:

# set -o
allexport       off
braceexpand     on
emacs           off
errexit         off
hashall         on
histexpand      on
history         on
ignoreeof       off
interactive-comments    on
keyword         off
monitor         on
noclobber       off
noexec          off
noglob          off
nolog           off
notify          off
nounset         off
onecmd          off
physical        off
posix           off
privileged      off
verbose         off
vi              on
xtrace          off

1 ответ1

0

Оказывается, режим vi был включен в .inputrc для каждого пользователя в системе. Он действительно немного отличается от vi-mode в zsh, к которому я привык - это означает, что 1) при «вверх» он сразу входит в командный режим и 2) для двойного нажатия «a» или «i» войдите в режим вставки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .