一、vim编辑器的相关知识

    vim 编辑器是vi的提高升级版本,是一个模式化的编辑器,适用范围非常广泛,可以使用vim 实现各种脚本的编写等。

vim 的三种模式:编辑模式(命令模式)、输入模式(插入模式)、末行模式。

vim三种模式之间的转换:

1.从编辑模式转换到输入模式:可以使用i ,o ,a,c,I ,O,A,C

i :insert   插入,在当前光标所在处插入(插入字符在光标之前)

  a :append  追加 ,在光标所在处的后面插入    

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

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

I :        在当前光标所在行的行首转换为插入模式

A :       在当前光标所在行的行尾转换为插入模式

vim 编辑器也可以实现一些特殊的操作如下:

vim  [option ] FILE

     +n           打开vim编辑器后,光标会出现在第n

     +/pattern      打开vim编辑器后,光标出现在与pattern(模式)匹配的行

     例如: vim  +/wait    /etc/inittab

2.从输入模式转换到编辑模式:按下键盘上的ESC键;从编辑模式转换到末行模式:输入 :即可 ,从末行模式转换到编辑模式,按下键盘上的ESC键两次。

在末行模式下可以做一些特殊的操作:

 set  nu           为显示的内容编号,

 :!ls  directory      查看指定目录下的内容

 :!mkdir  directory   创建目录

3.保存并退出编辑器使用命令    :wq 或者 :wqall

 不保存并退出编辑器使用命令 : q q!(强制退出)、qall !

4.如何在vim中实现光标的移动:(是在vim的编辑模式下才能使用,不是输入模式)

 h  光变向左移动 ;向右移动 ;k  向上移动 ;j 向下移动

 w 跳到下一个单词的词首, #w 跳到第#个单词的词首

 e 从单词首跳到单词尾   

 b 从单词尾跳到单词首 ;

 (  从光标处向前跳一行 

 ) 从光标处向后跳一行;

 {  从光标处向前跳一个段落

 }  从光标处向后跳一个段落;

 ^或者跳到一行的行首 ^ 是跳到行首的第一个非空白字符,0 是跳到绝对行首

 $   跳到一行的绝对行尾

 G   跳到文件的最后一行 #G 跳到第n

 在末行模式下输入 # 就可以将光标跳到第#

 5.如何在vim 中实现翻屏

   ctrl + f  :向文件尾部翻一屏 ctrl + b :向文件首部翻一屏

   ctrl + d  :向文件尾部翻半屏 ctrl+ u :向文件首部翻半屏

 6.如何在vim 中实现修改、删除、替换、复制、粘贴等操作

  <1> 修改字符:c change)是指在转换到插入模式之前可以先删除一些内容

      cw    删除光标所在的字母,如果光标在一个字母的中间,只删除光标后面的。

      C =c$  :删除至行尾

      c0     :删除至行首

      cc     :删除光标所在的行

      #cc    :可以一次删除#        

<2> 删除字符 d delet ,和c 类似但是删除后不转入插入模式

    连续按两次d 键可以删除光标所在的行

    d$   删除光标所在位置到行尾

    #dd  删除光标所在位置及后(# -1)

    x    删除光标所在处的字符

    #x   删除包括光标本身所在字符的#个字符

    X    删除光标前方的单个字符

    #X   删除光标前方的# 个字符

   

<3> 替换字符:r  replace  替换当前光标所在处字符

      #r[ a-z /A-Z]   :替换包括光标本身所在字符的#个字符 

 <4> 复制 y yank

     y$   复制当前光标到行尾的内容

     yy   复制当前光标所在行的内容

     #yy   复制# 行,包括光标所在的行

     粘贴 :按下p键进行粘贴

     p  如果复制的是一整行,粘贴时粘贴在当前光标所在行的下一行

           如果复制的是字符,粘贴时粘贴到当前光标的后面

大写P   :如果复制的是一整行,粘贴时粘贴在当前光标所在行的上一行

         如果复制的是字符,粘贴时粘贴到当前光标的前面 

<5> 撤销所做的操作:u undo

      u   撤销最近一次的编辑操作

     #u   :撤销最近#次的操作

   ctrl + r :撤销刚才的撤销操作

 <6> 在末行模式下可以实现字符的查找

     :/keyword 或者 :keyword

     :addr1,addr2s/form/to/flags

     其中addr1是开始行,addr2是结束行,from 是查找什么,to 是替换成什么。flags 可以使用g 表示全局查找,i表示忽略大小写的查找。