zoukankan      html  css  js  c++  java
  • 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,$        表示全文
    %          表示全文

  • 相关阅读:
    Treap 树堆 容易实现的平衡树
    (转)Maven实战(二)构建简单Maven项目
    (转)Maven实战(一)安装与配置
    根据请求头跳转判断Android&iOS
    (转)苹果消息推送服务器 php 证书生成
    (转)How to renew your Apple Push Notification Push SSL Certificate
    (转)How to build an Apple Push Notification provider server (tutorial)
    (转)pem, cer, p12 and the pains of iOS Push Notifications encryption
    (转)Apple Push Notification Services in iOS 6 Tutorial: Part 2/2
    (转)Apple Push Notification Services in iOS 6 Tutorial: Part 1/2
  • 原文地址:https://www.cnblogs.com/ant-colonies/p/6262380.html
Copyright © 2011-2022 走看看