VIM操作技巧

  1. 基础说明
    1. words 由空白字符分割,基本上可理解为字母数字下划线以外的都算分割符;
    2. WORDS 由非关键字分割的都算。注意,冒号(:)算;
  2. 定位
    1. hkjl 等于方向键
    2. 0行首
    3. ^本行第一个非空字符
    4. $行尾
    5. g0 单行显示换行时,移动到本屏幕显示行的行首!!
    6. g^ 单行显示换行时,移动到本屏幕显示行的第一个非空字符
    7. g$ 单行显示换行时,移动到本屏幕显示行的行尾
    8. #f% 向后查找#个字符(%)并停在该位置,f改成F为向前;
    9. ; 重复上一次的f/F操作
    10. , 重复上一次的t/F的反向操作
    11. #-|+   向上或向下移动#行,都移动到行首非空
    12. gg 文件头
    13. G 文件尾
    14. #G 跳到第#行
    15. w/W 按单个单词前进,每次移动到单词头部;
    16. e/E  与w/W相同每次移动到单词尾部。
    17. b/B 按单个单词后退,每次移动到单词头部;
    18. ge/gE 按单个单词后退,每次移动到单词尾部;
    19. () 按句子移动
    20. {} 按段落移动
    21. [],]],[[,][ 不太理解
    22. zt z. zb  移动屏幕,注意是移动屏幕的内容,而不是光标,之当前光标位置显示在屏幕的顶部,中间和尾部。
    23.  
  3. 删除操作
    1. dd 删除当前行
    2. #dd 删除从当前行起的#行
    3. :.,+2d 删除从当前行起行及后面的2行(共计3行),同样-2是往前删除;
    4. d$ d^ dE dW 等均可删除
  4. 标记指令
    1. 标记支持a-z和A-Z
    2. a-z是单文件内的;不同文件内容的a-z可以全不相同,每个文件有自己的设置;
    3. A-Z是全局的,即与文件关联的;整个主机只有一套;
    4. ma设置a标签在当前行,当前列;如果a已经存在则移除;
    5. marks 列出所有标记
    6. marks aB 列出标记a和B
    7. delmarks a-d删除a-d
    8. delmarks a,b,d,d 删除a,b,c,d
    9. delmarks!  删除a-z
    10. []往前或往后跳标志
    11. ‘跳到标志所在行的第一个非空字符;`跳到标志所在位置(列)
    12. 如:[‘表示跳到上一个标志所在的行;而]`表示跳到下一个标志所在的行和列;
    13. 预置标志:
      1. `. 最后修改位置
      2. `” 最后离开时的位置
      3. `0 `1 `2 最后一次打开的文件的位置,1是再往前,2依次
      4. ‘’ 最后一次的位置(行)
      5. “最后一次的位置(行+列)
      6. `[  `]最后修改或最后选择的位置
      7. `< `>可视化的选择区域位置
  5. 查找
    1. /是向下查找(前进)
    2. ?是向上查找(回退)
    3. n是重复上一次的查找;N是重复上一次的查找但反向;
    4. /不带参数为重复上一次的。 ?也是同样。
    5. //或??可使用上一次的查找pattern,但提供新的offset参数,一般没用。
    6.  
  6. 查找替换
    1. s/A/B/g      当前行替换所有A为B
    2. %s/A/B/g     所有行(%的作用就是这个)查找替换所有A为B
    3. 5,10s/A/B/g     仅查找替换5~10行
    4. ‘<,’>s/A/Bg      可视模式下的选区内替换:进入可视化模式后,输入:就会自动补全前面的’<,’>
      1. 单引号开头的表示一个标志(mark),如何增加标志参考其它内容;
    5. .,+2s/A/B/g    当前行与接下来的两行
    6. .$s/A/B/g   当前和
    7. 查找与替换范围
      1. s 当前行
      2. %s  所有行
      3. 5,10   第 5~10行
      4. .,+2   当前行及之后的2行(不包括当前行)
      5. .,$   当前行至文件尾
      6. ^,. 
      7.  
    8. 替换标志
      1. /g 全局替换,不带此标志此仅替换第一个;
      2. /c 替换前确认
      3. /i  /I 大写为大小写敏感;小写为不敏感;也可以在A后增加\c 或\C标志;
        1. 例如   %s/A/B/gI    与%s/A\C/B/g 效果相同
  7. 查找替换
    1. 查找内容的匹配
      1. 可使用\zs \ze来匹配需要替换的串;这里与正则表达式中的()的用法类似,但仅限其中一个;例如:
        1. :s/Copyright \zs2007\ze all rights reserved/2008 只仅替换其中的2007为2008,而不会替换其它内容;
      2. //忽略查找内容串,则使用最后一次的查找规则;
      3.  
    2. 查找范围
    3. 替换范围
    4.  
  8. 特殊字符的处理:
    1. \r 换行
    2. \n 表示null
    3. \0 表示整个匹配字符串的内容
    4. \1 \2 … 表示表达式中括号里的内容,按顺序匹配;
    5. \& 

You may also like

Leave a Reply

Your email address will not be published. Required fields are marked *