如何禁用历史扩展的确认,如“!!”

如何禁用历史扩展的确认,如“!!”

Zsh 确实对我照顾有加,但有时它可能会有点过分。我宁愿让它不要管我的事情,比如当它“想要确保我想要执行给定的命令”时。我遇到这种情况的功能是:

命令:
sudo !!- 运行以 sudo 为前缀的上一个命令
,并且
^old^new- 运行上一个命令,但将第一次出现的“old”替换为“new”


问题:
当我输入上面列出的两个命令之一并点击 时Enter,命令并没有立即运行,而是扩展为实际要运行的内容,我必须Enter再次点击才能真正执行它。这是第一个世界的问题,但仍然如此。

1 $ pwd
2 /home/neil
3 $ sudo !!
4 $ sudo pwd
5 /home/neil

我想跳过步骤 4。在 bash 中默认会跳过这一步。

答案1

这很简单...如果你知道相应的选项:

unsetopt HIST_VERIFY

如果您希望该行为永久存在,请将其放入您的行为中~/.zshrc并执行。source ~/.zshrc

解释来自man zshoptions

HIST_VERIFY 每当用户输入带有历史扩展的行时,不要直接执行该行;而是执行历史扩展并将该行重新加载到编辑缓冲区中。

相关内容