文本编辑器VIM




VIM有三种模式:编辑模式,输入模式,末行模式

#vim [option] FILE1…

输入模式:

i:在当前光标所在处进行插入                 I:在行首进行插入

a:在当前光标所在处后插入                  A:在行尾进行插入

o:在当前光标所在行下方打开一个新行        O:在光标所在行的上方打开一个新行

 

编辑模式:

保存退出  :wq 或者 ZZ  :wqall (保存多个文件) :w!强行保存

不保存退出: :q     :q!     :qwall!

光标的移动:

h 左移

下移

右移

上移

调至下一个单词词首

e < - - >b  词首 —— 词尾

()  跳一个句子

{}  跳一个段落

当前行行首 0 绝对行首

跳至行尾

 

行间跳转:

跳至最后行 #G  跳至第# gg 跳至首行

Ctrl + f -- ctrl + b  翻整屏

Ctrl + d -- ctrl + u  翻半屏

 

拷贝、删除、粘贴:

 
   vim y 表示拷贝, d 表示删除, p 表示粘贴. 其中拷贝与删除是与光标移动命令

结合的

  yw              表示拷贝从当前光标到光标所在单词结尾的内容.
  dw              表示删除从当前光标到光标所在单词结尾的内容.
  y0              表示拷贝从当前光标到光标所在行首的内容.
  d0              表示删除从当前光标到光标所在行首的内容.
  y$              表示拷贝从当前光标到光标所在行尾的内容.
  d$              表示删除从当前光标到光标所在行尾的内容.
  yfa             表示拷贝从当前光标到光标后面的第一个a字符之间的内容.
  dfa             表示删除从当前光标到光标后面的第一个a字符之间的内容.
  yy              表示拷贝光标所在行.
  dd              表示删除光标所在行.
  D                表示删除从当前光标到光标所在行尾的内容.
  5w(e)          
移动光标到下五个单词.
  5yy              
表示拷贝光标以下 5 .
  5dd             表示删除光标以下 5 .
  y2fa            表示拷贝从当前光标到光标后面的第二个a字符之间的内容.
  :12,24y        表示拷贝第12行到第24行之间的内容.
  :12,y           表示拷贝第12行到光标所在行之间的内容.
  :,24y           表示拷贝光标所在行到第24行之间的内容. 删除类似.
   r         表示转换替换字符

R          表示进入到替换模式

crtrl + r     表示撤销刚才的撤销操作

u          表示撤销操作

.           表示重做上一步命令

p          表示粘贴到光标所在行的下一行

 

替换:

:s/aa/bb/g      将光标所在行出现的所有包含 aa 的字符串中的 aa 替换为 bb

:s/\<aa\>/bb/g  将光标所在行出现的所有 aa 替换为 bb, 仅替换 aa 这个单词

:%s/aa/bb/g     将文档中出现的所有包含 aa 的字符串中的 aa 替换为 bb

:12,23s/aa/bb/g 将从12行到23行中出现的所有包含 aa 的字符串中的 aa 替换为 bb

:12,23s/^/#/    将从12行到23行的行首加入 # 字符

:%s= *$==       将所有行尾多余的空格删除

:g/^\s*$/d       将所有不包含字符(空格也不包含)的空行删除.

 

/word       向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可

 

:n1,n2s/word1/word2/g    n1 n2 为数字。在第 n1 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2   eg: 100 200 行之间搜寻 vbird 并取代为 VBIRD :100,200s/vbird/VBIRD/g