这是通过 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"
在后一个文件中。
我观察到的错误行为可重现如下:
- 用有效的更改目录命令填充命令行,例如
cd existingFolder
,
- 按Escape退出插入模式进入正常模式,
- 按v打开
vi
/vim
,
- 通过接受命令:wqEnter
结果:当前目录已更改,但提示,如果显示当前目录,则尚未更新以反映它的更改。
这是错误还是预期行为?
一屏胜过千言万语:
这独立于 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
未执行。 2020-02-07 的上游 git 提交 6c6454cb1 显示相同的行为。
所以回答这个问题,是的,看起来像一个错误。
我的 ~/.inputrc
文件中有此设置:
set editing-mode vi
但如果我有
,行为是一样的set -o vi
在`~/.bashrc 中。另外我还有
export VISUAL=vim
export EDITOR="$VISUAL"
在后一个文件中。
我观察到的错误行为可重现如下:
- 用有效的更改目录命令填充命令行,例如
cd existingFolder
, - 按Escape退出插入模式进入正常模式,
- 按v打开
vi
/vim
, - 通过接受命令:wqEnter
结果:当前目录已更改,但提示,如果显示当前目录,则尚未更新以反映它的更改。
这是错误还是预期行为?
一屏胜过千言万语:
这独立于 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
未执行。 2020-02-07 的上游 git 提交 6c6454cb1 显示相同的行为。
所以回答这个问题,是的,看起来像一个错误。