kry*_*tah 7 zsh command-history
Zsh 对我非常照顾,有时可能会有点过分。我宁愿让它远离我的业务的时候之一是当它“想要确保我想要执行给定的命令”时。我遇到的功能是:
命令:
sudo !! - 运行以 sudo 为前缀的上一个命令
和
^old^new- 运行上一个命令,但将第一次出现的“旧”替换为“新”
问题:
当我输入上面列出的两个命令之一并点击时Enter,而不是运行命令立即,命令扩展到实际要运行的内容,我必须Enter再次点击才能实际执行它。第一个世界问题,但仍然如此。
1 $ pwd
2 /home/neil
3 $ sudo !!
4 $ sudo pwd
5 /home/neil
Run Code Online (Sandbox Code Playgroud)
我想跳过第 4 步。这在 bash 中默认被跳过。
mpy*_*mpy 11
这很简单……如果您知道相应的选项:
unsetopt HIST_VERIFY
Run Code Online (Sandbox Code Playgroud)
如果您希望这种行为是永久性的,请将其放入您的~/.zshrc并执行source ~/.zshrc。
解释来自man zshoptions:
HIST_VERIFY每当用户输入带有历史扩展的一行时,不要直接执行该行;相反,执行历史扩展并将该行重新加载到编辑缓冲区中。