本文经AI新媒体量子位授权转载(公众号ID:QbitAI),转载请联系出处转载。程序员最常用的代码编辑器是什么,Vim、Emacs、VSCode、Sublime……众说纷纭。但如果要说最让程序员困惑的代码编辑器,那无疑是Vim了。可谓“天下苦vim久矣”。Vim有多烦人?如果您是初学者,甚至不知道如何退出它。最近,一位名叫LukeStephens的程序员发起了一个名为HowtoQuitVim的GitHub项目,仅一周就获得了2400颗星。路克从各个程序员的推特上找到了这些方法。总结起来,既硬核又幽默,勾起了很多程序员学习Vim的不堪回首的回忆。让我们来看看!硬核退出Vim最简单的方法就是找到vim进程并kill它::!psaxuw|grepvim|grep-vgrep|awk'{print$2}'|xargskill-9(这是欺负我不懂Vim,最简单的方法不应该是:q吗?)您实际上可以退出Vim而无需使用ps命令来显示进程::!kill-9$(find/proc-name"cmdline"2>/dev/null|whilereadprocfile;doifgrep-Pa'^vim\\x00'"$procfile"&>/dev/null;thenecho$procfile;fi;done|awk-F'/''{print$3}'|sort-u)卢克本人建议不用ps命令的方法,需要使用状态文件::!find/proc-namestatus|whilereadfile;doecho"$file:";cat$file|grepvim;done|grep-B1vim|grep-vName|whilereadline;dosed's/^\/proc\///g'|sed's/\/.*//g';done|xargskill-9如果觉得以上两种不使用ps命令的方式太长,还有一个捷径::!grep-P"PPid:\t(\d+)"/proc/$$/status|切-f2|xargskill-9对于Python用户,你有一种“Python方式”来退出Vim::py3importos,signal;fromsubprocessimportcheck_output;os.kill(int(check_output(["pidof","vim"]).decode('utf-8')),signal.SIGTERM)Luke还列出了一个“最短”的方式(原文:Theshortestway),我看你是在讽刺::!x=$(echo"c");x=$x$(回声"G");x=$x$(回声"t");x=$x$(回显"p");x=$x$(回显"b");x=$x$(回显"G");x=$x$(回显"w");x=$x$(回显“g”);x=$x$(回显“L”);x=$x$(回显“V”);x=$x$(回显“N”);x=$x$(回显“U”);x=$x$(回显“T”);x=$x$(回显“1”);x=$x$(回显“A”);x=$x$(回显“g”);x=$x$(回显“d”);x=$x$(回显“m”);x=$x$(回显“l”);x=$x$(回声"t");x=$x$(回声"C");x=$x$(回声"g");x=$x$(回声"=");x=$x$(回声"=");$(echo$x|base64--decode)以上Vim降维打击的方法都离不开Vim本身的运行,我们还有更高级的“降维打击”方法。麻烦,不妨以及在更高级别杀死它。如果你在Docker容器中运行Vim,例如:dockerrun--rm-it--namemy-vim-v`pwd`:/rootthinkca/vim那么你可以把Docker容器停止退出,不是关掉了吗?我太聪明了!dockerstopmy-vim是系统级的,我们也可以通过设置超时时间来killVim:$timeout600vim设置上面的代码,Vim会运行超过10分钟一劳永逸地关闭,并且您不再需要输入退出命令。但是得抓紧改代码保存,不然就惨了。哦,最后别忘了把Vim改成默认关闭10分钟:$aliasvim='timeout600vim'暴力佛法最直接暴力的方法就是拔掉电源。最佛系的方法就是走开。如果你非要问我有没有暴力和佛教结合的方法,请保留以下代码,运行后直接离座。!bash-c"(){|&};"不要轻易在自己的电脑上尝试,后果自负。职场方法如果你是公司的新人,或者是实习生,不敢随便在电脑上操作,建议采取以下措施:找高级工程师:“他们不会关Vim的!嘿嘿。”对于产品经理,Luke给出了一个详细的流程:提出需求(比彩黑容易多了)设置为最高优先级(把你手头的工作放在首位)随机分配给团队成员(谁干谁就干什么)对于高级产品经理显然,这个流程不够详细。在第2步之后,必须召开多次会议来定义验收标准、讨论工作流程并设置时间表。最后,项目完成后,大家开会总结经验。完美的!Vim:从入门到放弃看着上面的各种方法,是不是渐渐忘记了标题?Luke的项目原本是大家对Vim的抱怨的总结,没想到在HackerNews上引发了认真的讨论。有人说笑话就是笑话。Luke没有给出退出Vim的真正方法。如果初学者在搜索引擎中找到这个项目,那将是一个错误。最好的办法是远离Vim。Vim陡峭的学习曲线让很多新程序员望而却步,但幸运的是,有VSCode和Sublime等带有图形的代码编辑器可以替代它。至于你是否会退出Vim,这并不重要。有些人不会退出Vim,但他们仍然坚持使用它3年。从开始到放弃是怎样的?我根本没有开始使用Vim,为什么要放弃呢?传送门GitHub地址:https://github.com/hakluke/how-to-exit-vimHacker新闻讨论:https://news.ycombinator.com/item?id=21988968
