Vim备忘

正则表达式

VIM的正则表达式风格似乎是一种特有的风格,与POSIX正则和 PCRE 都不太一样,虽然只是小异,不过我还是常常被这种山寨式的正则搞的晕头转向,好记性不如烂笔头,还是把一些特性记下来吧:

  • 非贪婪模式:贪婪模式用’*’,非贪婪模式就用’\{-}’
  • 全字匹配:\< 匹配单词词首,\> 匹配单词词尾
  • 多行匹配:“\_.”匹配任意单个字符和换行符,这样就可以匹配多行了

应用实例:删除PHP的多行注释——

  • 将注释替换成一个空行
    :%s/\/\*\_.\{-}\*\///g
  • 再将空行删除
    :g/^\s*$/d
  • 对于 # 开头的注释行,另行处理
    :g/^#/d

使用不同的编码重载文件

有时候vim打开文件,发现有乱码。想换一种编码重新再载入文件,怎么换呢?只要用下面的命令就可以了:

:edit! ++enc=<encoding>

比如:

:edit! ++enc=gb2312

粘贴代码时取消自动缩进

VIM在粘贴代码时会自动缩进,把代码搞得一团糟糕,甚至可能因为某行的一个注释造成后面的代码全部被注释掉,我知道有同学这个时候会用vi去打开文件再粘贴上去(鄙人以前就是这样),其实需要先设置一下

set paste

然后再进入插入模式粘贴,代码就不会被自动缩进。可是敲代码的时候需要自动缩进,又得改回来:

set nopaste

最方便的方法就是在.vimrc中加一句:

set pastetoggle=<F9>

以后在插入模式下,只要按F9键就可以切换自动缩进。

作者:肖斌
本文链接:http://xiaobin.net/200905/vim-tips/

Printed from: http://xiaobin.net/200905/vim-tips/ .
© XiaoBiN.net 2010.

Leave a Reply