Vim中的查找和替换

Vim中的查找和替换功能相当强大,不单可以查找指定字符串,还支持正则表达式,指定光标的位置,结合其他命令对查找结果进行操作...

1. 查找命令

Vim中提供的最基本的查找命令有'/'和'?',其中,'/'用于正向查找;'?'用于反向查找。在执行一次查找操作后,Vim会记住本次所使用的模式(pattern)和偏移量(±nlines)。下一次使用时,只需要指定查找的方向(和/或新的偏移量)即可。

1.1 '/'命令

'/'为正向查找命令,即从光标所在位置起向后/下查找。

命令说明/{pattern}正向查找指定模式pattern/{pattern}/[±]offset正向查找指定模式pattern;找到后,以模式所在位置为基准,以指定偏移量移动光标/使用上一次模式和偏移模式进行正向查找//[nline]使用上一次的模式和新指定的偏移量进行正向查找;如新偏移量为空,则缺省为0

1.2 '?'命令

'?'为反正查找命令,即从光标所在位置起向前/上查找。

命令说明?{pattern}反向查找指定模式pattern?{pattern}?[±]offset反向查找指定模式pattern;找到后,以模式所在位置为基准,以指定偏移量移动光标?使用上一次模式和偏移模式进行反向查找??[nline]使用上一次的模式和新指定的偏移量进行反向查找;如新偏移量为空,则缺省为0

1.3 其他查找命令

除'/'和'?'外,Vim还提供了另外几条查找命令:

命令说明n重复上一次查找操作N使用上一次查找操作的模式和偏移量,在相反方向上查找*将当前光标所在位置的单词(word①)作为搜索对象,正向查找它的下一处出处位置;如当前光标所在位置处不是单词,则使用其后出现的第一个单词作为搜索模式。查找将忽略大小写。#同'*',但查找方向为反向g*基本同'*',区别在于,'*'匹配的是单词(单词左右需要有空白定界符),而"g*"匹配的只是字符串。①g#基本同"#",区别同上gd局部声明跳转,常用于查找函数内变量的定义位置。搜索的关键字是光标所在位置处的关键字(变量名),搜索的范围是光标当前所在(或一个)函数(以不一定正确)。Vim会尝试从函数的开始处正向寻找此关键出现的第一处位置(并不一定总是变量的声明之处,而仅仅可能只是变量在函数中第一次出现的位置),如未找到,则光标保持在原位置不变。gD全局声明跳转,常用于查找全局变量的定义位置。类似于"gd",但查找的范围是当前文件1gd类同于"gd",但会忽略光标位置前结束的第一对'{'和'}'之间的代码1gD类同于"gD",同样会忽略光标位置前结束的第一对'{'和'}'之间的代码Ctrl-C中止当前正在执行的命令(搜索):noh[lsearch]关闭"hlsearch"选项(高亮显示)。下一次搜索时,高度会再次打开

说明:Vim中的单词,指由英文大小写字母、数字和下划线构成,由特定边界(空格或制表符等空白符号,或行首/行尾标识)包围起来的字符串。使用'*'进行查找时,搜索的是完整的单词;而使用"g*"查找时,搜索的对象仅仅是构成单词的字符串(单词的边界并不在匹配范围之内)。举例来说,假定光标所在处单词为"b_c",则使用'*'进行查找时,并不会匹配"ab_cd"中的"b_c",而"g*"则会匹配成功。 

1.4 例子

vim删除一行:当光标定位到某一行时,输入dd(delete directly)
vim查找命令:命令模式下,按‘/’,然后输入要查找的字符,回车即可。
vim查找替换:全文替换的命令:%s/aaaa/bbbb/g
     其中aaaa是你要在文中查找的(被替换掉的),bbbb是将要替换aaaa的,%是说明要全文查找,可以用别的代替,比如说:1,12s/aaaa/bbbb/g,说的是在文中的第1到第12行查找aaaa并替换成bbbb,后面的g是命令的一部分,同样的好友c,e,i,这里g的意思是不需要确认直接替换,如果换成c的话,每次的替换都需要你确认,e是不显示错误,i是不分大小写。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值