linux的cp命令是否支持正则,Linux基础命令之cd,mkdir,cp,ls,cat-Linux设置服务开机启动 chkconfig...-VIM使用正则表达式搜索字符串的方法详解_169IT....

为大家介绍VIM中正则表达式的用法,使用正则搜索字符串,有时效率会很高,当然这个效率是针对我们使用者而言。

在插入模式下,为了减少重复的击键输入,VIM 提供了若干快捷键,当你要输入某个上下文曾经输入过的字符串时,你只要输入开头若干字符,使用快捷键,VIM 将搜索上下文,找到匹配字符串,把剩下的字符补全,你就不必敲了。这样,编程序时你起多长的变量名都没关系了,:-) 而且还可以减少输入错误。我认为,插入补全是 VIM 最为突出的一项功能。

i   向上搜索,补全一个词。

例如,上文中出现过 filename 这个词,当你想再输入 filename 时,只要按 f 即可。

假如 VIM 向上搜索,找到以 f 开头的第一个匹配不是 filename,你可以继续按 搜索下一个匹配进行补全。

当然,如果想一次 就成功,你可以多输入几个字符比如 filen 再按 补全

i   向下搜索,补全一个词

i      补全一行。比如你写过一行 for (int i = 0; i < 100; i++),你想再写一模一样的一行,只要输入 for 即可。如果补全出来的不是你想要的那一行,你可以按 或 选择上一个或下一个匹配行

i      在文件系统中搜索,补全一个文件名

如果按 或 补全一个词,在当前文件中没有找到匹配,VIM 将搜索 #include 语句中的文件,而文件的位置将在 path 中搜索。

搜索字符串用的是正规表达式(Regular expression),其中许多字符都有特殊含义:

\        取消后面所跟字符的特殊含义。比如 \[vim\] 匹配字符串“[vim]”

[]       匹配其中之一。比如 [vim] 匹配字母“v”、“i”或者“m”,[a-zA-Z] 匹配任意字母

[^]      匹配非其中之一。比如 [^vim] 匹配除字母“v”、“i”和“m”之外的所有字符

.        匹配任意字符

*        匹配前一字符大于等于零遍。比如 vi*m 匹配“vm”、“vim”、“viim”……

\+       匹配前一字符大于等于一遍。比如 vi\+m 匹配“vim”、“viim”、“viiim”……

\?       匹配前一字符零遍或者一遍。比如 vi\?m 匹配“vm”或者“vim”

^        匹配行首。例如 /^hello 查找出现在行首的单词 hello

$        匹配行末。例如 /hello$ 查找出现在行末的单词 hello

\(\)     括住某段正规表达式

\数字    重复匹配前面某段括住的表达式。例如 \(hello\).*\1 匹配一个开始和末尾都是“hello”,中间是任意字符串的字符串

对于替换字符串,可以用“&”代表整个搜索字符串,或用“\数字”代表搜索字符串中的某段括住的表达式。

复杂点的例子,把文中的所有字符串“abc……xyz”替换为“xyz……abc”,有下列写法:

:%s/abc\(.*\)xyz/xyz\1abc/g

:%s/\(abc\)\(.*\)\(xyz\)/\3\2\1/g

其它关于正规表达式搜索替换的详细说明,请参看 :help pattern

例如:在文本中搜索所有包含amount大于0的以[ ] 括住的字符串的行,如 “amount[123]“,  ”amount[200]“ 等:

首先按 :进入命令 模式,然后输入下面的串再回车开始查找:/amount\[[1-9]\([0-9]*\)\+\]

解释:

/  表示进行串搜索, 其它字符为 正则表达式的内容

amount  表示匹配串包含amount

\[  转义字符,表示匹配左中括号 [

[1-9]  表示匹配一位1到9之间任何数字

\(  \)   转义的左右括号,表示括住某段正则表达式,

\+  转义字符+,表示前面一个字符或一个正则串重复1次或多次,所以,\([0-9]*\) 表示 任意个0-9之间的数字

\] 转义字符 ]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值