如何在编辑器中编辑当前空行,而不用先前的命令填充它?

如何在编辑器中编辑当前空行,而不用先前的命令填充它?

显然,自从几周前发布 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不受影响。

相关内容