vim 高级编辑技巧

  1. 建议参考IBM官方文档
    https://www.ibm.com/developerworks/cn/linux/l-cn-tip-vim/
  2. 重新输入以前输入过的某条命令
    Ctrl + r
  3. 全局替换
    格式:
    ":%s/要替换字符/替换为新字符/g"
    :%s/old/new/g 
    指定行替换 
    格式: ":起始行,终止行s/要替换字符/替换为新字符/g"
    :1,5 s/old/new/g
  4. 多文件替换
    多文件替换,比如要替换所有.c文件中a_value为b_value,可以使用如下方法: 
    vi *.c 
    :argdo %s/a_value/b_value/ge | update 
    其中update是直接替换覆盖原文件,若需要确认,则可使用 
    :argdo %s/a_value/b_value/gec | update
  5. 多行注释:
    首先按 esc 进入命令行模式下,按下 Ctrl + v,进入列(也叫区块)模式;
    在行首使用上下键选择需要注释的多行;
    按下键盘(大写)"I" 键,进入插入模式;
    然后输入注释符("//"、"#" 等);
    最后按下 "Esc" 键。
    注:在按下 esc 键后,会稍等一会才会出现注释,不要着急~~ 时间很短的
  6. 删除多行注释:
    首先按 esc 进入命令行模式下,按下 Ctrl + v, 进入列模式;
    选定要取消注释的多行;
    按下 "x" 或者 "d".
    注意:如果是 "//" 注释,那需要执行两次该操作,如果是 "#" 注释,一次即可
  7. 删除行首的多字符
    首先按 esc 进入命令行模式下,按下 Ctrl + v, 进入列模式, 按"右箭头"选择要删除的字符长度;
    按"向下"箭头选择要删除多少行
    按下"d",即可删除
  8. 其他
    显示行号: set nu
    取消显示行号: set nonu
    回到句尾: shift + $ 
    回到句首: shift + ^
    段首 :  { 
    段尾 :  }
    前一修改处 :  g, 
    后一修改处 :  g;
    删除光标之后的单词剩余部分 : dw
    删除光标之后的该行剩余部分 : d$
    把下一行合并到当前行尾 : J
    撤消更改: u 
    自动补全: Ctrl-p 
    显示当前编辑文件名及行数: Ctrl-g
    按住ctrl + alt 选块复制粘贴
原文地址:https://www.cnblogs.com/Mrhuangrui/p/4665698.html