我经常遇到这种情况,当输入一个复杂的命令时,我意识到我需要先输入一些其他命令。
作为vi
用户,我很想0 D输入一个不同的命令,然后p使用已删除的命令行。不幸的是,没有人(包括我自己)费心vi
以zsh
.
所以现在我在命令的开头插入I一些x
使其失败,做我的其他事情,从历史记录中删除旧命令并删除x
. 每次我问自己:有没有更简单的方法来做同样的事情?
不是重复的!请注意,我提到我使用的是 vi 模式。其他问题的答案均不适用于 vi 模式。它们仅适用于 emacs 模式,即使它们没有提及,所以它们具有误导性。请重新打开,以便人们找到正确的答案。
启用
interactivecomments
shell 选项并
#
在命令行上使用正常/命令模式下的操作(即按Esc后跟#)。这会在该行的前面插入 a#
,立即提交该行(由于它是注释,因此将被忽略),并将其添加到命令行历史记录中。这在逐行的基础上工作,即不幸的是,它不适用于多行命令。在已经被注释掉的行上使用该
#
操作(例如从命令行历史记录中获取)会#
从行的开头删除并提交它。默认情况下,
interactivecomments
shell 选项在交互式 shell 中未设置,但在非交互式 shell 中设置。