linux学习22 Linux运维必备技能-vim编辑器深入讲解

一、回顾

  1、正则表达式(BRE、ERE)

    BRE:

      字符匹配:.,[],[^]

      次数匹配:*,?,+,{m},{m,n}

      位置锚定:^,$,<,>

      分组及引用:(),1,2...

    ERE:

      字符匹配:.,[],[^]

      次数匹配:*,?,+,{m},{m,n}

      位置锚定:^,$,<,>

      分组及引用:(),1,2,...

      或者: |

    推荐教程:正则表达式30分钟教程。

  2、grep,egrep,fgrep

    文本过滤器:PATTERN

    -v,-o,-i,-q,-A,-B,-C

  3、wc,cut,sort,uniq,diff,patch

二、vim编辑器

  1、文本编辑器:

    文本:纯文本,ASCII text;Unicode

  2、文本编辑种类

    行编辑器:sed

    全屏编辑器:nano,vi,vim

      vi:Visual Interface

      vim:VI IMproved

  3、vim:

    a、模式化的编辑器

      基本模式:

        编辑模式,命令模式

        输入模式

        末行模式:内置的命令行接口;

  4、打开文件:vim [options] [file ..]

    +#:打开文件后,直接让光标处于第#行的行首。vim + file  表示直接跳到文件尾部

[root@node1 ~]# vim +5 fstab

    +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首。

[root@node1 ~]# vim +/if functions 

  5、模式转换:

    a、编辑模式:默认模式

      编辑模式 --> 输入模式

        i:insert,在光标所在处输入

        a:append,在光标所在处后方输入

        o:在光标所在处下方打开一个新行,光标直接在行首

        I:在光标所在行的行首输入

        A:在光标所在行的行尾输入

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

      输入模式 --> 编辑模式:

        ESC

      编辑模式 --> 末行模式

        :

      末行模式 --> 编辑模式

    b、关闭文件

      ZZ:保存并退出

      :q :退出

      :q!  :强制退出,不保存此前的编辑操作

      :wq  :保存并退出。也可以先:w,然后再:q

      :x     :保存并退出,和:wq一样

      :w    /PATH/TO/SOMEFILE  :将对应内容保存至某文件中

    c、光标跳转

      字符间跳转

        h:向左跳转

        j:向下跳转

        k:向上跳转

        l:向右跳转

        #COMMAND:跳转由#指定的个数的字符。比如10l  就表示向右跳转10个字符

      单词间跳转

        w:下一个单词的词首

        e:当前或后一个单词的词尾

        b:当前或前一个单词的词首

        #COMMAND:跳转由#指定的个数的单词

      行首行尾跳转:

        ^:跳转至行首的第一个非空白字符

        0:跳转至真正的行首

        $:跳转至行尾

      行间跳转:

        #G:跳转至由#指定的行。比如输入100G那么就在100行的行首

        1G,gg:跳转至第一行

        G:最后一行

      句间跳转:

        ):跳到下一句

        (:跳到上一句

      段间跳转

        }:跳到前一段

        {:跳到后一段

    d、翻屏操作

      Ctrl + f:向文件尾部翻一屏

      Ctrl + b:向文件首部翻一屏

      Ctrl + d:向文件尾部翻半屏

      Ctrl + u:向文件首部翻半屏

      Enter:向文件尾部翻一行

      k:向文件首部翻一行

  6、vim的编辑命令

    a、字符编辑

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

      #x:删除光标所在处起始的#个字符

      xp:交换光标所在处的字符与其后面的字符的位置

    b、替换命令(replace)

      r:替换光标所在处的字符

        rCHAR

    c、删除命令

      d:删除命令,可结合光标跳转字符,实现范围删除

        d$:删除当前光标所在处到行尾的内容

        d^:删除当前光标所在处到行首的内容(不包括行首的空格)

        dw:删除到光标到下一个单词的词首

        de:删除到光标到本单词词尾或下一个单词的行尾

        db:删除到光标到本单词词首或上一个单词的词首

          #COMMAND 删除几个单词

        dd:删除光标所在的行

          #dd:删除光标所在处的行起始的共#行

    d、粘贴命令

      p:缓冲区中的内容如果为整行,则粘贴在当前光标所在行的下方,否则则粘贴至当前光标所在处的后方

      P:缓冲区中的内容如果为整行,则粘贴在当前光标所在行的上方;否则,则粘贴至当前光标所在处的前方

    e、复制命令(yank,y)

      y:复制,工作行为相似于d命令

      y$

      y^

      y0

      ye

      yw

      yb

        #COMMAND

      yy:复制一整行

        #yy:复制#行

    f、改变命令(change,c)

      编辑模式--> 输入模式,实现删除操作

      和d命令效果是一样的,只是他做完删除动作以后会将当前模式转换为输入模式

  7、可视化模式

    v:按字符选定

    V:按行选定

    结合编辑命令:d,c,y

  8、撤销(undo)操作:

    u:撤销此前的操作

      #u:撤销此前的#个操作

  9、恢复此前的撤销操作

    Ctrl + r

  10、重复执行前一个编辑操作

    . (点号)

四、vim自带练习教程

  Vim自带的练习教程:vimtutor

五、vim的末行模式

  内建的命令行接口

原文地址:https://www.cnblogs.com/Presley-lpc/p/12097305.html