Vim正则实例

须转义字符: .*[]^%/\?~$
查看帮助: :h pattern.txt

实例

  1. 删除包含关键字(help)的行
      :g/help/d
      :g!/help/d    !表示不包含
    
  2. 交换奇偶行
      :g/^/+1m-1
      -------------------
      g/^/ 匹配所有行
      +1   定位到下一行
      m-1 移到上面去
    
  3. 非贪婪匹配
      默认贪婪匹配到行末:/<a.*> 
      使用非贪婪匹配本标签:/<a.\{-}>
    
  4. 多行空行替换为一个空行
      %s/\(^$\n\)\+/\r/g
      g/^\s*$/,/\S/-j|s/.*//   参考:http://www.commandlinefu.com/commands/view/3052/compress-blank-lines-in-vim
      [相关参考:使用vim的^$\n不能替换空行(全角字符问题)]
    
  5. 刪除沒有內容的空行
      g/^$/d
    
  6. 刪除包含有空格組成的空行
      g/^\s*$/d
    
  7. 除以空格或tab開頭到結尾的空行
      g/^[ |\t]*$/d
    
  8. 正则实例
      :%s/_\([a-z]\)_\(.*\)/_\U\1\l_\2/g
    
      :%s/\(Wa_.*\)/\1,,,/g 
      :%s/\(Ar_.*\)/,\1,,/g 
      :%s/\(So_.*\)/,,\1,/g 
      :%s/\(Cl_.*\)/,,,\1/g 
    
  9. 单行id补齐其它列
      :%s/\(\d\+\),$/\1,,,,/g  
    
  10. 删除空数据的行
      :g/\d\+,,,,/d 
    
  11. 删除单行只有一个逗号的行
      :g/^\d\+,[a-zA-Z0-9_\- ]*$/d
    
  12. 删除空行
      :g/^$/d
    
  13. 大小写切换(v选中的文字可以用u切换到小写,U切换到大写,~在大小写之间切换)
      VIm
      HEllo
      WOrld
      NIce
      GOod
      ME
      TOo
      :%s/^\(\w\{2\}\)\(.*\)/\U\1\L\2/g  
    
  14. 删除每行第二个空格之后的内容
      :s/[^ ]*\ [^ ]*\ \zs.*$//  
    

资源链接