我知道,如果我按此键,esc然后再键入,由于这个问题:q!
,我可以退出vim
编辑器。
但是,标准约定是让程序在按ctrl+时退出c,这会将a发送SIGINT
到当前正在运行的进程。
例如top
,tail -f
和ping
所有遵守这个约定。
我的问题是:为什么不vim
遵循这个公认的惯例?是否有历史原因,还是其他原因?
在我看来,如果像其他所有内容一样遵循此标准约定,它将避免给新用户带来很多混乱。
(虽然我们在使用它,但为什么要使用它SIGINT
而不是SIGTERM
放在首位呢?)
我的问题是:为什么vim不遵循这个公认的惯例?是否有历史原因,还是其他原因?
因为vim
遵循另一个古老而又行之有效的约定,所以交互式程序中的Control-C将中止当前命令,而不是整个程序。交互式shell也遵循该约定-Control-C不会杀死您的shell,但会杀死它正在运行或将要运行的命令。
不遵循该约定的程序通常试图通过捕获SIGINT
并询问用户“您是否真的要退出”或“使用退出来退出”等方式来减轻恐惧,从而使他们从讨厌变成烦人。
Control-C的其他非常完善的约定是将其用作其他命令的前缀(例如在emacs启发的程序中,Control-G充当Control-C的角色)或将选择内容复制到剪贴板。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句