Vim 自产生以来,历经不断革新,现在最新版的 Vim 已经具有很强大的功能,使用户能够更加轻松、便捷地使用它。
  1Vim 的工作模式
    1.1命令模式
     开始进入 Vim 时处于命令模式,如果已经处于插入模式或末行模式,按<ESC>键可回到命令模式。在这种模式下,只能用按键指令,不能输入文字。
    1.2插入模式
     插入模式就是要把文本插入到要编辑的文件,插入位置根据所用的命令不同而不同。
从命令模式进入插入模式需要键入 i、a 、o、 r 及 I、A、 O、R等命令。在完成文本的输入后,必须用<ESC>键返回命令模式。
    1.3末行模式
     末行模式因命令出现在屏幕的最底部一行而得名。在命令方式下,键入某些特殊字符,如/、?、 :等,光标跳到屏幕末行并显示键入的末行字符,此时键入命令后回车,Vim 会根据需要在末行显示出一定的响应信息,同时将自动回到命令状态。
   2  Vim 编辑文件的基本过程
     在命令行键入 Vim testfile,其中 testfile 代表要打开的文件名,如果文件不存在,Vim 将自动新建一个名为 testfile 文件。
     进入 Vim 后,按<i>键进入插入模式,即可进行文件的编写工作。光标可以由方向键来移动。
<BackSpace>键可以删去前一个字符。
     写好文件后按<ESC>键可回到命令模式,然后用:w 存档(注意,是冒号命令),这时还不会离开
Vim,要离开可按:q,也可以合起来用:wq,代表保存后离开。
     2.1光标的移动
     注意:本节所述都是在命令模式下的操作。
      2.1.1
基本的光标移动
      左                           h          Backspace 或左方向键
      下                            j          Enter 或+或下方向键
      上                            k          -或上方向键
      右                            l           Space 或右方向键
      向下翻页                  Ctrl+f    PageDown
      向上翻页                  Crtl+b    PageUp
      2.1.2复杂光标移动
      0                             移至行首,或是<Home>键
      ~                             移至第一个非空白字符
      $                             移至行尾,或<End>键
      G                            移至文件尾(最后一行的第一个非空白字符处)
      gg                           移至文件首(第一行第一个非空白字符处)
      w                            移至下一个字首
      W                           同上,但会忽略一些标点符号
       e                            移至后一个字字尾
       E                            同上,但会忽略一些标点符号
       b                            移至前一个字字首
       B                           同上,但会忽略一些标点符号
       H                           移至屏幕顶部第一个非空白字符
       M                          移至屏幕中间第一个非空白字符
       L                            移至屏幕底第一个非空白字符
       n|                           移至第 n 个字符处
       :n                           或 n G 移至第 n 行行首,注:n 表示具体数字,如 1,2,3......
       )                             移至下一个句首
       (                             移至上一个句首
       }                             移至下一个段落首
       {                             移至上一个段落首

       2.2基本编辑指令
       2.2.1进入插入模式指令
       i                              在光标所在字符前开始输入文字(insert)
       a                             在光标所在字符后开始输入文字(append)
       o                             在光标所在行下开一新行来输入文字(open)
       I                              在行首开始输入文字
       A                             在行尾开始输入文字
       O                             在光标所在行上开一新行来输入文字
        J                             将下一行整行连接到本行(joint)
        2.2.2删除指令
        x                            删除光标所在处的字符。也可用<Del>键。
        X                           删除光标所在位置前的字符。
        dd                          删除一整行。
        dw                         删除一个字(delete word)。
        dG                         删至文件尾。
        D                           删至行尾,或 d$(含光标所在处字符)。
        d^                          删除当前光标到行首的字符
        d$           删除当前光标到行尾的字符
        2.2.3取代及还原
         r                            取代光标所在处的字符。
         R                           取代字符直至按<Esc>为止。
         cc                          取代整行内容。或大写 S 亦可。
         cw                         替换一个英文字。
         ~                            光标所在处之大小写转换。
         C                           取代至行尾,即光标所在处以后的字都会被替换。或 c$。
         c0                          取代至行首,或 c~。
          u                           撤销前面的操作,即 undo,撤销的次数是没有限制的。
          U                          在光标没离开本行之前,回复所有编辑动作。
          2.2.4复制
          yy                         复制光标所在行整行。或一个大写 Y。
          2yy                       复制两行。
          y0           复制至行首,不含光标所在处字符。
          y$                         复制至行尾。含光标所在处字符。
          yw                        复制一个字。
          yG                        复制至文件尾。
          y1G                      复制至文件首。
          2.2.5查找与替换
          查找
           /                             按/会在左下角出现一个/,键入要查找的字串,按回车开始查找。
          ?                             和/相同,只是/是向前(下)找,?则是向后(上)找。
          n                             继续查找。
          N                            继续寻找(反向)。
           *                            寻找光标所在处的字(要完全符合)。
           #                            同上,但*是向前(下)找,#则是向后(上)找。
           g*                          同*,但部分符合即可。
           g#                          同#,但部分符合即可。
           替换
             语法:[range]s/pattern/string/[c,e,g,i]
            用 string 替代 pattern。Range 指的是范围,1,7 指从第一行至第七行,1,$指从第一行至最后一行,也就是整篇文章,也可以%代表;c 每次替换前会询问;e 不显示 error;g 不询问,整行替换;i 不分大小写。
          2.3   离开
          :q                             如文件有修改而没保存,会警告,且无法离开。
          :q!                            放弃所有修改,强迫离开。
          :wq                          保存文件后离开,即使文件没有修改也会再保存一次。
          :x                             保存文件后离开,但如果文件没有修改,则不会做保存的动作。
          :ZZ                          和:x 完全一样。
          :w                            另存,不加文件名就是写入原文件。