为大家介绍VIM中正则表达式的用法,使用正则搜索字符串,有时效率会很高,当然这个效率是针对我们使用者而言。
在插入模式下,为了减少重复的击键输入,VIM 提供了若干快捷键,当你要输入某个上下文曾经输入过的字符串时,你只要输入开头若干字符,使用快捷键,VIM 将搜索上下文,找到匹配字符串,把剩下的字符补全,你就不必敲了。这样,编程序时你起多长的变量名都没关系了,:-) 而且还可以减少输入错误。我认为,插入补全是 VIM 最为突出的一项功能。
i<C-P> 向上搜索,补全一个词。
例如,上文中出现过 filename 这个词,当你想再输入 filename 时,只要按 f<C-P> 即可。
假如 VIM 向上搜索,找到以 f 开头的第一个匹配不是 filename,你可以继续按 <C-P> 搜索下一个匹配进行补全。
当然,如果想一次 <C-P> 就成功,你可以多输入几个字符比如 filen 再按 <C-P> 补全
i<C-N> 向下搜索,补全一个词
i<C-X><C-L> 补全一行。比如你写过一行 for (int i = 0; i < 100; i++),你想再写一模一样的一行,只要输入 for<C-X><C-L> 即可。如果补全出来的不是你想要的那一行,你可以按 <C-P> 或 <C-N> 选择上一个或下一个匹配行
i<C-X><C-F> 在文件系统中搜索,补全一个文件名
如果按 <C-P> 或 <C-N> 补全一个词,在当前文件中没有找到匹配,VIM 将搜索 #include 语句中的文件,而文件的位置将在 path 中搜索。
搜索字符串用的是正规表达式(Regular expression),其中许多字符都有特殊含义:
对于替换字符串,可以用“&”代表整个搜索字符串,或用“数字”代表搜索字符串中的某段括住的表达式。
复杂点的例子,把文中的所有字符串“abc……xyz”替换为“xyz……abc”,有下列写法:
其它关于正规表达式搜索替换的详细说明,请参看 :help pattern
例如:在文本中搜索所有包含amount大于0的以[ ] 括住的字符串的行,如 “amount[123]“, ”amount[200]“ 等:
首先按 :进入命令 模式,然后输入下面的串再回车开始查找:/amount[[1-9]([0-9]*)+]
解释: