初识 Vim


Vim是苹果电脑上自带的一个免费且功能强大的文本编辑器。 在这个教程里,我将教给您一些基本的操作。

打开文件


您可以象打开其它任何一个命令行编辑器一样的打开Vim.





比方,您想编辑的文件名字叫什么 life.md, 就在终端命令行内敲入如下的命令:

vim life.md

Vim工具就会在命令行内加载该文件,并将其打开。Vim是一个终端程序,所以没有图形化界面。

Vim模式的基本操作


Vim共有四种模式:正常,插入,可视以及命令。 每种模式都会在程序底部左端的状态栏内显示名字。

当您启动 Vim, 是正常模式。您可以用各种的命令键去浏览整个文件,并进行相应的编辑。 当您从其它任何模式里退出来,就会回到正常模式。

您可以通过使用 a, A, i, I, o and O 按键将 Vim 切换到插入模式。 一旦进入插入模式,Vim 就会一直处于该模式下,在该模式下您按的每一个键都会被插入到当前光标所处的位置,直到您按下了  Esc 键。

当您处于正常模式下,可以通过按 v, V  或者是 Ctrl-v 命令切换到可视模式。在可视模式下,您可以选择文本。 正如您所用过一些导航命令一般,在可视模式开始的地方到退出可视化模式的区域就是所选的文本。

在任何时侯,您只要在正常模式输入 : ,就会进入到命令模式。 在命令模式,您就可以进行一些复杂的编辑功能,文件操作,或者是 Liunx 层面的操作。命令行模式是唯一一种不会在命令行显示任何信息的模式,但是在命令模式下输入的命令或其它键盘输入信息都会在这个状态栏展示出来。

保存文件,关闭 Vim


在正常模式,您可以通过输入 ZZ 来保存当前的文件并且退出。 您也可以通过命令 :w! 来保存文件。 这个 : 将把您带进命令模式, w  就是写文件的命令,那个 ! 就表示系统强制执行该写操作,而不做任何其它提示。 或者,您也可以输入 :wq ,另外一个写法 :wq! q 的意思就是退出编辑器。您也可以使用命令 :q! ,该命令表示无须保存当前的编辑信息,直接退出。

基本光标移动


在正常模式下,您可以游历整个文件,然后到特定的编辑区进行文章修改。h 键可以向光标左边移动, I 键可以向光标右边移动,J键向光标下移一行, 而k键可以让光标上移一行,w 键可以让光标后移到下一个单词,b 键就让光标向前移一个单词。

如果您这一次移动的位置不止一个空格,一个单词,或是一行时,就可以在方向指示键前面加上数字,这时光标就会按您方向指示按键的前面的数字标示来移动相应的距离。 例如:您如果输入 10j, 那光标就会向下移动10行。

在命令模式下,这个行数字可以在绝对模式和相对模式下进行切换:

  • 绝对数字模式是正常模式:每行都按照连续的顺序有一个独一无二的序号。
  • 相对数字模式显示的是数字标式的行距离当前光标所在行的差值。




要让编辑器显示出行序号,您可以使用命令: set number. 反之如果不想显示行序号, 就可以使用 :set nonumber 命令。

要设置相对序号模式,输入命令 :set relativenumber. 要返回到绝对序列下,就输入 :set norelativenumber.




您也可以设置两种模式并存, 使用命令如下 :set number :set relativenumber. 这时您的 Vim 将会把当前行用绝对序列显示出来,而其它行都用相当于当前行的相对序号显示。




在使用相对序号模式下,您就能非常快的决定到底在移动键 J 或者是 K前面加上数字几就可以到达您想要的目标行了。比方上图的例子,如果想移动到 List 那一行,只需要输入命令 2j 即可。

如果想称到一行的开头,就直接按 0(零,不是欧)命令。 移到行尾就按 $ 符。gg 的命令可以快速移动到文件的开头,而 G 命令就能快速移动到文件的结尾。

.vimrc 文件


根据上面所讲,您会发现相对序号的排列其实更有用。但如果每次启动后都要先去设置一次才能变成相对序号排列也挺麻烦。 这时候做为 Vim 的配置文件就发挥作用了。在终端命令行进入到用户的根目录输入如下命令:

vim .vimrc

.vimrc 文件是Vim 的配置文件。 您在命令模式下输入的任何命令都可以在这个文件里面使用。 每次 Vim 启动时该文件都会被调用。 在这个文件里,使用 i命令进入到插入文本模式,然后把下面这些行加入进去并保存文件。

现在,在您每次打开 Vim程序之时,他都会是相对序列和绝对序列两种混合的方式了,同时也会把搜索结果以高亮的方式展现出来。 高亮展示搜索结果对我们下面一节所讲的内容就非常有用了。 在这个文件里面您还能做很多有用的事情,我们把他留在以后的教程中吧。

搜索和替换


在正常模式下,您可以通过输入 / 号进入到搜索状态。 比方您输入 /This, 就会发现文章里所有的 This 都会被高亮显示出来。




点按 n, 光标就会快速移动到下一个匹配的搜索词上。点按 N, 就会返回到上一个匹配的搜索词上。 在 / 号后面输入的范式可以是任何规范的表达式。 这里介绍一篇文章:进阶搜索和替换,帮助您更好的理解规范表达式。



打算进行文本替换,就只能在命令模式下操作了。 在命令模式下, s 命令表示在当前行替换,  %s 表示在整篇文章内替换,,s 就表示从这个行号开始到这个行号结束的片段内进行替换。

替换的格式是这样写的 ///gi, 在这里和都是标准的规范表达式。 比方使用上面的例子,我打算找到文章内所有的 This,然后替换成 That. 在 g 后面跟着字母 i,就表示这个搜索是大小写不敏感的。 如果变成  I  就会是搜索时大小写是敏感的。使用了  g 命令就可以一次换掉全部的目标词,如果不加 g,那么该命令一次只能替换一行的。

编辑命令


使用 i 命令就可以在当标当前位置的左边插入文本。 使用 a 命令就可以在当前光标的右边插入文本。 I 命令会把广西插入到行首,A 命令会把广西插入到行尾。

o 命令会在光标所在当前行之后插入一个新行,把Vim 编辑器转为插入模式,并把光标置于新行首位置,等待输入。 O命令做的是一样的事情,不过他插入的行在光标当前行之上了。

删除字符,可以使用 d 命令,并在后面加上删除方向就可以把光标那个方向的字符给删除掉了, 您也可以使用空格键来删除光标位置下面的字符。如果您给该命令加了数字前缀,那个 Vim就会删除相应方向上您所指定个数的字符。 dd 命令会删除当前行。 D 命令就会删除光标当前位置到结尾的所有内容。

x 命令会删除掉光标位置上的字符,  X命令会删除光标之前的字符。这两个命令都可以加数字前缀,以确定执行某个方向上删除动作的次数。

拷贝,剪切和粘贴


在正常模式下点按 v 进入到视觉模式。从我们进入视觉模式开始,光标所有的动作都是一个选择操作。 当您有了一个选择区域后,使用 y键 就会拷贝当前选定的文本。 将光标移动到新的位置,使用  p命令,就会把所选的内容粘贴在光标之后的位置,使用P命令,就会粘贴到光标之前。

在做了选择之后,您可以使用  x 命令删除掉所选的内容。 也可以使用 d 命令就是剪切当前的选区,然后再使用 p命令把内容粘贴到您所选的地方。



为了选择大块文本,您可以使用 ctrl –v  命令来开启视觉模式。使用 V命令,这时选择文本是按行选择,而不是按字符选择了。

熟能生巧


现在您已经掌握了最基本的 vim使用技巧了, 再就需要不断练习了。  Vim进阶 是一个很好的方法让您提高 Vim 技能。相当于是一个进阶游戏可以让您练习更高端有意思的 Vim 命令。




不深思则不能造于道。不深思而得者,其得易失。

名人名言- 曾国藩
  • By 优联实达
  • 2015-10-27
  • 2205
  • 公司新闻,网站开发,网站设计,UI