zsh 你不知道那些事儿-001-HIST_VERIFY

bash 和 zsh 都有一套命令历史机制,历史替换(History Expansion)是其中的一部分, 例如:

执行上一条命令:

1
!!

执行上上一条命令:

1
!-2

将上一条命令中的 foo 替换成 bar,然后再执行:

1
^foo^bar

在 bash 中,当你在 command line 中键入 !!!-2^foo^bar 这些命令然后回车的时候,对应的命令便会立即执行,zsh 的默认行为也是如此。但是 zsh 中可以通过设置 HIST_VERIFY 选项,让 zsh只将历史替换展开,并不立即执行,用户确认没有问题后 自行按回车键执行。

设置 HIST_VERIFY 选项的命令为:

1
set -o histverify

1
setopt histverify

如果使用oh-my-zsh,那么这个选项已经打开( ${OH_MY_ZSH_ROOT}/lib/history.zsh