Это ошибка в bash при редактировании командной строки в редакторе через vi или ожидаемое поведение? - PullRequest
2 голосов
/ 22 февраля 2020

У меня есть этот параметр в моем ~/.inputrc файле:

set editing-mode vi

, но поведение такое же, если у меня

set -o vi

в `~ / .bashr c , Кроме того, у меня также есть

export VISUAL=vim
export EDITOR="$VISUAL"

в последнем файле.

Наблюдаемое мной ошибочное поведение воспроизводимо следующим образом:

  1. заполните командную строку допустимая команда смены каталога, например, cd existingFolder,
  2. нажмите Escape , чтобы выйти из режима вставки и войдите в нормальный режим,
  3. нажмите v , чтобы открыть vi / vim,
  4. принять команду с помощью : w q Введите

Результат: текущий каталог изменился, но приглашение, если оно показывает правильный каталог, не обновилось, чтобы отразить его изменение.

Это ошибка или ожидаемое поведение?

Скринкаст лучше тысячи слов:

asciicast

1 Ответ

4 голосов
/ 22 февраля 2020

Это происходит независимо от режима vim, vi или bash vi.

MCVE выглядит так:

$ cd /usr && env -i EDITOR='touch' PS1='\w \$ ' bash --norc
/usr $ cd bin   # press Ctrl-X Ctrl-E instead of Enter here
cd bin
/usr $ pwd      # Bug visible here, prompt should say `/usr/bin`
/usr/bin
/usr/bin $      # Prompt now showing expected value

Не удается выполнить запрос обновление, и PROMPT_COMMAND не выполняется. Восходящий поток git commit 6c6454cb1 от 2020-02-07 показывает то же поведение.

Таким образом, ответ на вопрос, да, выглядит как ошибка.

...