困扰无数人的Linux Vim退出方法,原来这么简单?

Vim作为使用最广泛的文本编辑器之一,在编程的世界中,一直流传着一个关于它的神秘问题,知道答案的人寥寥无几,却又难以启齿,那就是:怎么退出Vim?
据说,很多程序员就算退休了,也没有退出Vim,比如这位:

困扰无数人的Linux Vim退出方法,原来这么简单?

文章插图
 
他已经使用Vim两年了,为什么呢?因为他不知道怎么退出来 。
而另一部分程序员则表示:很简单,我重新卖了一台电脑就搞定了 。
很多人打开Vim却不知道怎么退出,这可不是开玩笑,而是一个尴尬的事实 。
在知名IT技术问答网站Stack Overflow上,“How to exit the Vim editor?”这个问题的总浏览量目前已经超过200万,无数的程序员前来探讨如何退出Vim 。
困扰无数人的Linux Vim退出方法,原来这么简单?

文章插图
 
 
而在百度经验上,类似的问题在一年里也有超过35万的浏览量 。 
困扰无数人的Linux Vim退出方法,原来这么简单?

文章插图
 
 
下面我们来看看这个问题下面的回答,这条回答准确无误,操作规范,却又让无数使用Vim的程序员无地自容 。(该回答翻译自Stack Overflow)
 
如何退出Vim?
 
点击Esc键进入“普通模式” 。然后,您可以键入:以进入“命令行模式” 。冒号(:)将出现在屏幕底部,您可以键入以下命令之一 。要执行命令,请Enter按键 。
· :q 退出(的缩写:quit)
· :q!不保存即退出(的缩写:quit!)
· :wq 写和退出
· :wq! 即使文件只有读权限也可以写并退出(如果文件没有写权限:强制写)
· :x 写入并退出(类似于:wq,但仅在有更改时写入)
· :exit写入并退出(与相同:x)
· :qa全部退出(的缩写:quitall)
· :cq 退出而不保存并使Vim返回非零错误(即退出时出现错误)
也可以通过输入ZZ保存并退出(与:x)或ZQ直接退出(与:q!)来直接从“普通模式”退出Vim
 
如今Vim已经更新到Vim8,“怎么退出Vim”早已经成为程序员之间的一个热梗,更多的程序员是表面上不会退出,背地里俨然已经自学成Vim大佬 。
既然前面我们已经学会了如何退出Vim这个重点,那么我们就可以开始深入学习Vim的旅程了 。
 
在Cygwin中感受类UNIX操作体验
 
Cygwin是windows的类UNIX环境,它提供了一种命令行界面,致力于将强大的UNIX Shell命令行以及相关的支撑工具带到Windows操作系统中 。
Cygwin的应用程序可能叫作Cygwin64 Terminal或Cygwin Termianl,这取决于操作系统的类型 。找到其图标,如图所示 。
 
困扰无数人的Linux Vim退出方法,原来这么简单?

文章插图
 
 
打开它,可以看到如下的命令行提示界面,linux用户应该相当熟悉了 。
困扰无数人的Linux Vim退出方法,原来这么简单?

文章插图
 
 
困扰无数人的Linux Vim退出方法,原来这么简单?

文章插图
 
 
Cygwin是在Windows环境下体验Linux系统Shell命令的一种方式,这意味着,一旦选择使用Cygwin时,就需要遵循Linux系统中的指令和约定 。
同时,还需要注意Windows样式的换行符和Linux样式的换行符,因为Windows和Linux处理换行的方式不同 。如果在Vim中遇到^M字符无法识别,则对相应的文件执行dos2unix命令就可以解决 。
 
Vim的基本操作
 
1
打开文件
首先,使用者可以打开自己最喜欢的命令行终端(Linux和macOS系统中是终端,Windows系统中为Cygwin),跟随下面的步骤来编写一个非常基础的Python程序 。
先从一个简单的开平方根计算器开始,运行如下命令 。
$vimanimal_farm.py这会打开一个名为animal_farm.py的文件 。如果此文件存在,则读者会看到它的内容;如果文件不存在,则得到一个空白界面
困扰无数人的Linux Vim退出方法,原来这么简单?

文章插图
 
 
Vim的底部状态中显示了文件名,旁边还有[New File]字样,表示这是一个新文件 。现在读者已经用Vim打开了第一个文件 。
如果之前已经打开过Vim,则可以用如下命令加载一个文件(别忘了命令后面要按Enter键) 。
$vimanimal_farm.py这有可能是你在Vim中运行的第一条命令 。输入冒号字符:表示进入命令行模式,在此模式下输入的文字会被Vim解析为命令 。按Enter键可以结束命令,通过Vim命令可以执行很多复杂的操作,包括访问系统的命令行 。命令:e表示编辑(edit) 。


推荐阅读