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