如何取消编辑并执行命令?

如何取消编辑并执行命令?

有没有办法在我按下后不执行命令Ctrl+X Ctrl+E? ( edit-and-execute-command)

理想情况下,就像在 git 中一样:如果我保存文件(如 vim 中的 :wq),它就会被执行,但如果我关闭文件而不保存(如 vim 中的 :q!),则该命令不会被执行。

答案1

要取消命令的执行,请在保存文件并退出编辑器之前完全删除文件内容。

有趣的是,使用这种方法,原始未编辑的命令仍然保存在历史记录中。

注意:这个答案是在评论中建议的——我测试了它并且它有效。

答案2

即使在正常的行编辑过程中,我也养成了#在行首添加前缀的习惯。这允许我查看一个复杂的命令以确保它是正确的,或者也许在我的历史记录中保存一个命令的“草稿”,同时我去研究我需要制定和检查该命令的精确语法的其他一些信息点。草拟命令。

假设您只在 中编辑一行命令,vi请执行以下操作:

1Gi#Esc

然后保存文件,您的“草稿”命令将不会被执行,而是会存储在您的bash历史记录中。准备好后,您可以返回到命令,删除前导#并执行命令。

相关内容