如何在不执行命令的情况下中止 fc?

dec*_*ser 15 bash command-history

命令 fc 将允许对上一个命令进行可视化编辑。如果我在编辑器中改变主意,如何停止执行命令。在 vim 中,输入 q! 或 q 两者都会导致命令被执行并且 CTRL-C 也不起作用。是在编辑器中删除命令然后wq的唯一选项吗?

meu*_*euh 18

从 vi 您可以键入:cq退出而不保存并使用非零返回代码。在这种情况下,该命令将不会重复。

或者,您通常可以暂停编辑器,使用ctrl-z它可以让您返回 shell,而无需重新执行命令。您仍然需要fg重新启动编辑器,但 tmp 文件将不再存在,因此您可以安全地退出编辑器。或者你可以使用kill -9 %这个暂停的编辑器。

我同意,这可能更容易。当然,您始终可以使用 vi 或 emacs 命令在 bash 中编辑行。

  • 这是因为没有错误,因此退出代码为 0。在 vi 中,它可以键入 :c(导致非法命令消息)然后键入 :q! 并且记住的错误导致退出代码 != 0。但是这在 vim 中不起作用。我之前的假设是 :q! 总是导致退出代码 != 0 是错误的。 (2认同)

小智 5

也许,更容易记住的方法是删除命令(dd 应该这样做)并退出(ZZ或任何其他退出保存的方式应该这样做)。恕我直言,:cq这是相当神秘的。