Vim中如何在可视选择区域内直接删除指定单词
Vim行可视模式下删除选区内指定单词的操作
你已知的:s/dog//替换方案可行,不过有更贴合Vim操作逻辑、按键更少的原生方式,不需要装任何插件:
- 先把光标移到文本里任意一个
dog单词上,按*键,Vim会自动把dog设为搜索关键词,高亮全文匹配项 - 按
Shift+v进入行可视模式,选中需要处理的第2至4行 - 直接按
dgn,这一步会删掉选区内第一个匹配到的dog,之后按1次.(重复上一次修改的快捷键),就能删掉选区内剩下的第二个dog,选区外第1行的dog不会被改动。
说明:
gn是Vim 7.4版本后新增的运动指令,会自动选中当前搜索结果的匹配内容,搭配删除操作+.重复指令,处理选区内零散匹配项的时候,比输入完整替换命令效率高很多,肌肉记忆形成后几乎不需要思考按键。
如果你要处理的选区内dog数量很多,不想反复按.,也可以在选好2-4行后,直接输入:s/dog//g回车——注意可视模式下按:后Vim会自动填充'<,'>前缀限定作用范围,你不需要手动输入行号,只需要敲s/dog//g几个字符就行,比你记忆里的输入量要小。
初始待处理文本:
1 The quick brown dog 2 dog jumps 3 over the 4 lazy dog, 5 but it should be just a fox.
操作完成后就能得到预期效果:
1 The quick brown dog 2 jumps 3 over the 4 lazy , 5 but it should be just a fox.
内容的提问来源于stack exchange,提问作者Rod Elias
相关产品推荐
相关产品推荐

