vim编辑器

1.vi:Visual Interface   文本编辑器,字处理器;文本:ASCII,Unicode

2.vim:VI  iMproved

4.vim模式:

编辑模式(命令模式)

输入模式

末行模式

5.模式转换:

编辑  ------> 输入:

     i | I   :在当前光标所在字符的前面,转为输入模式;

     a| A :在当前光标所在字符的后面,转为输入模式;

     0|O :在当前光标所在字符的下方,新建一行,并转为输入模式;

输入----->编辑:

     Esc:

编辑---> 末行:

     " :"

末行--->编辑:

    ESC,ESc

一.打开文件

    #vim filename

    vim +#  :打开文件,并定位于#行;

    vim +   :打开文件,定位于最后一行;

    vim  + /PATTERN  :打开文件,定位至第一行被PATTERN匹配到的行的行首。

 

    默认属于编辑模式

二.关闭文件

   1>..末行模式关闭文件:

     :wq(保存并退出)    

    :q!强制退出

   2>.编辑模式下关闭文件:

      ZZ

     !ls   filename  :查看某个文件

      输入模式和末行模式不可以转换

三.移动光标

   1>.逐字符移动:

        h: 在光标所在处往左移动一个字符;

        l:   在光标所在处往右。。。。;

        j:   。。。。。上移。。。。。;

        k: 。。。。。下移。。。。。;

       #h:  移动#个字符

   2>.  逐个单词移动

       w:移至下一个单词的词首;

       e: 跳至当前或者下一个单词的词尾;

       b: 跳至当前或者前一个单词的词首;

       # COMMAND:由#指定一次跳转的单词数;

   3>.行内的跳转

       0: 绝对的行首;

       ^:  行首的第一个非空白字符;

       $:  绝对的行尾     

   4>.行间跳转

       #G:跳转至第#行;

       G: 跳转至最后一行 . 

       回到行首: gg  ,G

   5>.句间移动:

       )

     (

   6>.段落间移动:

       }

       {

四.翻屏

   1>.Ctrl+f  :向下翻一屏

   2>.Ctrl+b :向上翻一屏

   3>.Ctrl+d  : 向下翻半屏

   4>.Ctrl+u  :向上翻半屏

   字符编辑:

五.删除单个字符

   x:删除光标所在处的单个字符;

   #x:删除光标所在处及向后的共#个字符

六.删除命令

   d命令删除跳转命令组合使用

   #dw,de,#db

 

   末行模式下;

   dd :删除当前光标所在的行   #dd;

   从当前行到第n行:  .,+nd

   删除n,m行:  n,md;

   $:最后一行;

   +#:向下的#行;

   删除的内容被保存在内存中

七.黏贴命令 

   1>.P(大写):如果删除或复制为整行内容,则黏贴至光标所在行的下方,如果复制或删除的内容为非整行,则黏贴至光标所在字符后面;

   2>.p(小写):如果删除或复制为整行内容,则黏贴至光标所在行的上方,如果复制或删除的内容为非整行,则黏贴至光标所在字符前面。

八.复制命令:y

    类似d

九.修改,先删除内容,再转换为输入模式

    c(change):

     c$,c^,c0 ;  

     cb,ce,cw

十.替换:r

   R:替换模式

十一.撤销编辑操作  u(undo)

    u:   撤销前一次的编辑操作   可连续使用

    #u  :撤销最近#次编辑操作

 

   撤销最近一次的撤销操作:Ctrl+r

十二.重复前一次编辑操作

   点号: ”.“

十三.可视化模式

   v: 按字符选取

   V(大写);按矩形(行)选定

   经常结合  d,c,y编辑命令

十四.查找

    /PATTERN :从当前光标所在处向文件尾部查找;

    ?PATTERN:   从当前光标所在处向文件首部查找;

    n: 与命令同方向;

    N: 与命令反方向;

    支持正则表达式

十五.查找并替换

   S: 在末行模式下完成查找替换操作

      s/要查找的内容/替换的内容/修饰符

         要查找的内容:可使用模式

         替换为的内容:不能使用模式,但可以使用\1,\2.....等向后引用符号,还可以使用“&”引用前面查找到的整个内容;

      修饰符

        i: 忽略大小写;

        g:全局替换,默认情况下,每行只替换第一次出现;

      查找替换中的分隔符”/“可替换为其他字符;eg

        s@@@

        s####

十六.如何打开多个文件

  vim  file1    file2   file3 

   : next   切至下一个文件;

   :prev   切换至前一个文件;

   :last    切换至最后一个文件;

   :first    切换至第一个文件;

   :qall   退出所有;

   :wall   保存退出.

十七.分屏显示多个文件

    Ctrl+w ,s :水平分窗口

    Ctrl+w , v  : 垂直拆分窗口

 

    在窗口间切换光标:

    Ctrl+w , ARROW(上下箭头)

    退出:qa全部退出

十八.分窗口多个文件

  vim  -o |O  file1  file2 ......

       -o    :水平分割显示

        -O    : 垂直分割显示

十九.将当前文件中部分内容另存为另外一个文件

   末行模式下使用w命令

  :w

  :ADDR1 w    /PATH/to /somewhere

二十.将另一个文件的内容填充在当前文件中

  :r    /path/to/somewhere

二十一.跟shell交互

  :! Command

二十二.高级话题

   1>.显示行号:

    :set  nu | nonu

 

   2>.显示忽略或区分字符的大小写

    :set  ignorecase | ic 

    :set  noignorecase

 

  3>.设定自动缩进

   :set autoindent | ai |  noai

 

  4>.查找到的文本高亮显示或取消

   :set hlsearch | nohlsearch


  5>.语法高亮

   :syntax  on | off


  6.>括号匹配:

    匹配: set showmatch ,简写为set sm

    取消: set nosm

二十三定制vim的工作特性

   .配置文件  :永久有效

   全局         :/etc/vimrc

   个人         : ~/.vimrc

 

Vim 的末行模式:

   内建的命令行接口

    1>. 地址定界:    :start_pos ,end_pos

        #:  具体第#,行,eg :2,表示第2行

        #,# :从左侧#表示行起始,到右侧行表示行结尾

      #,+#  :从左侧#表示行的起始,加上右侧#表示的行数;

      . : 当前行;

      $: 最后一行;

      .,$-1: 从当前行到$-1行;

      %=1,$:  全文;

      /pat1/,/pat2/:从第一次被pat1模式匹配到的行开始,一直到第一次pat2匹配到的行的结束(可结合#$使用)

    2>.使用方式:

  后跟一个编辑命令(可结合d,y,w,r命令使用)

     w  /PATH/TO/SOMEWHERE :将范围内的行另存至指定文件中;

     r  /PATH/FROM/SOMEFILE:在制定文职插入制定文件中的所有内容;


 Note: 带有颜色的为常用选项