这是通过 vi 在编辑器中编辑命令行时 bash 中的错误,还是预期的行为?

Is this a bug in bash when editing command line in editor through vi, or expected behavior?

我的 ~/.inputrc 文件中有此设置:

set editing-mode vi

但如果我有

,行为是一样的
set -o vi

在`~/.bashrc 中。另外我还有

export VISUAL=vim
export EDITOR="$VISUAL"

在后一个文件中。

我观察到的错误行为可重现如下:

  1. 用有效的更改目录命令填充命令行,例如cd existingFolder,
  2. Escape退出插入模式进入正常模式,
  3. v打开vi/vim,
  4. 通过接受命令:wqEnter

结果:当前目录已更改,但提示,如果显示当前目录,则尚未更新以反映它的更改。

这是错误还是预期行为?

一屏胜过千言万语:

这独立于 vimvi 或 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未执行。 2020-02-07 的上游 git 提交 6c6454cb1 显示相同的行为。

所以回答这个问题,是的,看起来像一个错误。