Linux入门学习笔记(七)vi 编辑器

vi 编辑器

文本编辑器,子处理器

ASCII,sed,

vi: Visual Interface

vim: VI improved

全屏编辑器,模式化编辑器

vim模式

编辑模式(命令模式)

输入模式

末行模式

模式转换:

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

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

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

o :在当前光标所在行的下方,新建一行,并转为输入模式;

I :在当前光标所在行的行首,转为输入模式;

A:在当前光标所在行的行尾,转为输入模式;

O:在当前光标所在行的上方,新建一行,并转为输入模式;

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

ESC

编辑模式-->末行模式

:

eg: 删除第10行 ‘:10d’

      删除10-20行 ‘:10,20d’

显示行号 ‘:set nu’

末行模式-->编辑模式:

ESC,ESC

一、打开文件

vim /path/to/somefile

vim +# filename: 直接打开文件至第#行数

vim +  filename: 直接打开文件至最后一行

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

eg: 匹配/etc/inittab文本中第一个出现System的字符串

      vi +/System /etc/inittab

默认处于编辑模式

二、关闭文件

1、末行模式下关闭文件

    :q 不保存退出

    :wq 保存并退出 --> :x

    :q! 不保存强行退出

    :w  保存

    :w! 强行保存

2、编辑模式下退出

    ZZ 保存退出

三、移动光标(编辑模式下)

1)逐字符移动

    h:左

    l:右

    j:下

    k:上

    #h :向左移动#个字符


2) 以单词为单位移动

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

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

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

    #w:移至下#个单词的词首

3) 行内跳转:

    0:跳至绝对行首

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

    $:跳至绝对行尾

4) 行间跳转

    #G:直接跳转至第#行

    G:直接跳转至最后一行

    gg:直接跳转至第一行

末行模式下,直接给出行号即可

四、翻屏(编辑模式下)

    Ctrl+f:向下翻一屏

    Ctrl+b:向上翻一屏

    Ctrl+d:向下翻半屏

    Ctrl+u:向上翻半屏

五、删除单个字符(编辑模式下)

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

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

六、删除命令:d

    d命令跟跳转命令组合使用:

    dw:删除光标坐在单词

    d^:删除光标坐在单词至行首的字符串

    #dw,#de,#db

    dd:删除当前光标所在行

    #dd:删除包括当前光标所在行在内的#行

末行模式下:

    StarADD,EndADDd

        eg:删除10-20行

            :10,20d

    . 表示当前行

          eg:删除当前行及下5行

             :.,+5d

               删除当前行至第5行

              :.,5d

    $ 表示最后一行

    +#表示向下#行

    $-3表示倒数第3行

七、粘贴命令:p

    p(小写):如果删除或复制为整行内容,则粘贴至光标所在行的下方;如果删除或复制为非整行内容,则粘贴至光标所在行的后方;

    P(大写):如果删除或复制为整行内容,则粘贴至光标所在行的上方;如果删除或复制为非整行内容,则粘贴至光标所在行的前方;

八、复制命令:y (yank)

    用法同d命令

九、修改:先删除指定内容,再转换会自动模式

    c: change用法同d命令

十、替换:r (replace)

    r: 在将光标所在字符原位替换

    R:进入替换模式,可连续将光标所在字符原位替换,按ESC键退出替换模式。

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

    u:撤销前一次的编辑操作

    连续u命令可撤销此前的n次编辑操作

     #u:直接撤销最近#次操作

      注:最多撤销50次,因为内存缓冲区只保存最近50次的编辑内容

     撤销最近一次撤销撤销:Ctrl+r

十二、重组前一次编辑操作

     .

十三、可视化模式

     v: 按字符选取

     V:按矩形选取

十四、查找

     /PATTERN

     ?/PATTERN

     n  下一个

     N  上一个

十五、查找并替换

    在末行模式下使用s命令:

    ADDR1,ADDR2s/PATTERN/string/gi

    eg: 将当前行至倒数第2行中出现的全部所有he替换成HE

        .,$-2s/he/HE/g 

你可能感兴趣的:(Linux入门学习笔记(七)vi 编辑器)