显然,自从几周前发布 bash v.5(在 Arch Linux 和 Debian Buster 上见证)以来,在 vi 模式下调用编辑器的默认行为已经发生了变化。
set -o vi
<Esc>v
bash 4.x 及更早版本:$EDITOR
弹出一个空的。
bash 5.x: $EDITOR
以最后执行的命令打开(类似于fc
命令)。
意外打开命令行编辑器并暴力地:q!
使用它会导致重复执行最后一个命令。对于一个长期沉迷于 vi 模式的人来说,这是意想不到的行为,并且违反了最小惊讶原则。如何恢复到旧的空编辑器状态?
答案1
不幸的是,事实证明这是bash 中的一个真正的错误,它已经进入了主要发行版,例如 Debian Buster 以及 FreeBSD 11.3 和 12.0。
至少对于 Arch Linux 来说,有bash-开发-git不受影响。