• Linux中vim编辑器的总结


    vi( Visual Interface )

    vim( VI iMproveed ):为纯文本(ASCII)全屏编辑器,也是模式化编辑器.

    vim的三种模式:

    1)编辑模式(命令模式)

    2)输入模式

    3)末行模式

    三种模式之间的切换:

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

    i: 在当前光标所在字符的前面,转为输入模式;
    a: 在当前光标所在字符的后面,转为输入模式;
    o: 在当前光标所在行的下方,新建一行,并转为输入模式;
        
    I:在当前光标所在行的行首,转换为输入模式;
    A:在当前光标所在行的行尾,转换为输入模式;
    O:在当前光标所在行的上方,新建一行,并转为输入模式.

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

        ESC键1次.

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

        :

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

        ESC键一次或连续ESC键2次.

                                                                                                                                                                                           图片说明(来源网络)

    一、打开文件
    # vim /path/to/somefile
        vim +#             :打开文件,并定位于第#行;
        vim +               :打开文件,定位至最后一行;
        vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首;
                            说明: # 为十进制正整数    PATTERN 代表模式匹配;
        文件打开后默认处于编辑模式.

    二、关闭文件
      1)、末行模式关闭文件

    :q  退出
    :wq 保存并退出
    :q! 不保存并退出
    :w 保存
    :w! 强行保存
    :wq --> :x               --> 相当于

     2)、编辑模式下退出
         ZZ: 保存并退出

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

     1)、逐字符移动

     h: 左
     l: 右
     j: 下
     k: 上
     #h: 移动#个字符

     2)、以单词为单位移动

        w: 移至下一个单词的词首
        e: 跳至当前或下一个单词的词尾
        b: 跳至当前或前一个单词的词首   
        #w:

     3)、行内跳转

        0: 绝对行首
        ^: 行首的第一个非空白字符
        $: 绝对行尾

     4)、行间跳转

        #G:跳转至第#行;
        G:最后一行
        gg: 首行
        
        末行模式下,直接给出行号即可  :#

    四、翻屏

    Ctrl+f: 向下翻一屏(forward)
    Ctrl+b: 向上翻一屏(back)

    Ctrl+d: 向下翻半屏(down)
    Ctrl+u: 向上翻半屏(up)

     

    五、删除单个字符

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

     

    六、删除命令: d  --delete

    d命令跟(所有)跳转命令组合使用(#最前,d次之,跳转最后)
    #dw, #de, #db, #d$

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

    末行模式下:(d在末尾)                (作为独立的地址参数,删除该行)
    StartADD,EndADDd                  (StartADD,startaddress--startline)
        .: 表示当前行
        $: 最后一行
        +#: 向下的第#行             
        -#: 向上的第#行

    七、粘贴命令 p --paste   (最后一次的删除内容保存于内存中,可用于粘贴)

    p: 如果删除或复制为整行内容,则粘贴至光标所在行的下方,
       如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面;
    P: 如果删除或复制为整行内容,则粘贴至光标所在行的上方,
       如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面;

    八、复制命令 y   (yank)
        用法同d命令
        
    九、修改:先删除内容,再转换为输入模式
        c: 用法同d命令      (change)
        C:直接将光标处至行位删除,再转换为输入模式

    十、替换:r    --replace

    r: 替换单个字符
    R: 连续替换单个字符



    十一、撤消编辑操作 u      (undo)

    u:撤消前一次的编辑操作
        连续u命令可撤消此前的n次编辑操作    (内存中保存50次)
    #u: 直接撤消最近#次编辑操作

    撤消最近一次撤消操作:Ctrl+r


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

    .       (点号)

     

    十三、可视化模式

     v 字符选择,会将光标经过的地方反白选择(-- VISUAL --)
    V 行选择,会将光标经过的行反白选择(-- VISUAL LINE --)
    [Ctrl]+v 区块选择,可以用长方形的方式选择资料(-- VISUAL BLOCK --)
    y 将反白的地方复制起来
    d 将反白的地方删除掉
    以上三种模式可对已选文本做各种普通模式下的操作,通过选择指定文本可进行批量的插入、删除、替换操作(如注释掉脚本中的多行)


    十四、查找

    /PATTERN             向下匹配
    ?PATTERN             向上匹配
        n                      按照匹配方向的下一个
        N                      按照匹配方向的上一个

    十五、查找并替换

    在末行模式下使用s命令  (与sed命令一样)
    ADDR1,ADDR2s@PATTERN@string@gi                    (g--global, i--ignore case)
    1,$        表示全文
    %          表示全文

  • 相关阅读:
    Yupoo! 的网站技术架构(转)
    用DELPHI编写NT服务时,如何指定依存关系?
    soapUI快速入门
    Delphi2007开发WebService调用COM+无响应现象分析
    折半查找法的C++原型
    soapUI快速入门
    Delphi2007开发WebService调用COM+无响应现象分析
    SQL Server 性能调优
    SQL Server 性能调优
    用DELPHI编写NT服务时,如何指定依存关系?
  • 原文地址:https://www.cnblogs.com/ant-colonies/p/6262380.html
Copyright © 2020-2023  润新知