如何退出nano的错误代码?

lef*_*out 10 nano exit-code

当使用 vim 来“回复”某个程序(通常是 git)时,故意退出错误会很有,以中止打开窗口的整个操作。喜欢

$ git commit -a
# vim opens, showing me the staged files and asking for a commit message
# oops, I see some stuff staged that wasn't supposed to be committed
:cq     # exit vim with nonzero exit code
Run Code Online (Sandbox Code Playgroud)

这将阻止git实际执行提交。

现在不幸的是,有些机器已经nano配置为默认编辑器,所以我偶尔会发现自己在那个编辑器中,相应地很无助。

我现在所做的是:使用另一个ssh会话和killall editor.

有没有办法从 nano 本身内部做同样的事情,对应于 vim 的:cq

Kam*_*ski 8

这就是我可以通过作业控制在交互式sh(或bash等)中执行的操作:

我可以nanoCtrl+ Z( ^Z)暂停。注意:如果消息是,Suspension is not enabled那么我需要按Alt+ Z( M-Z) 才能启用。据我所知,这些是nano.

如果命令是,nano || foo则将foo立即触发。

现在我nano作为工作回到了 shell (请参阅 参考资料jobs)。kill %%将向它发送信号,仍然nano不会退出。我需要fg在发送信号后才nano终止。

不如 vim 快,:cq但仍然没有额外的 SSH 会话。

  • 真的感觉应该有比这更好的解决方案...... (2认同)