微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

【Vim】查找与替换

前言

在日常编写代码的过程中,查找与替换的操作常常会用到。比如,方法内某个变量的名字需要重新命名、某些字符串内容需要更改等等。

虽然强大的 IDE 已经给我们提供了强大的 查找与替换 功能,但作为一个 Vim 重度使用者,可以用简洁的命令完成的事情,必须也安排上!

基本语法

:s(substitute)命令用来查找和替换字符串。语法如下:

:{作用范围}s/{目标}/{替换}/{替换标志}

例如 :%s/foo/bar/g 会在全局范围(%)查找 foo 并替换为 bar ,所有出现都会被替换(g)。

作用范围

作用范围分为当前行、全文、选区等等。

1、当前行:

:s/foo/bar/g

2、全文:

:%s/foo/bar/g

3、选区,在 Visual 模式下选择区域后输入 :,Vim 即可自动补全为 :'<,'>

:'<,'>s/foo/bar/g

4、某些行之间,如 2-11 行:

:2,11s/foo/bar/g

5、当前行 . 与接下来两行 +2

:.,+2s/foo/bar/g

替换标志符

上文中命令结尾的 g 即是替换标志之一,表示全局 global 替换(即替换目标的所有出现)。 还有很多其他有用的替换标志:

空替换标志表示只替换从光标位置开始,目标的第一次出现:

:%s/foo/bar

i 表示大小写不敏感查找,I 表示大小写敏感:

:%s/foo/bar/i
– 等效于模式中的\c(不敏感)或\C(敏感),如下,可以匹配到Foo \ FoO
:%s/foo\c/bar

c 表示需要确认,例如全局查找 "foo" 替换为 "bar" 并且需要确认:

:%s/foo/bar/gc

回车后 Vim 会将光标移动到每一次 “foo” 出现的位置,并提示

replace with bar (y/n/a/q/l/^E/^Y)?

按下 y 表示替换,n 表示不替换,a 表示替换所有,q 表示退出查找模式, l 表示替换当前位置并退出^E^Y 是光标移动快捷键。

结尾

非常简单实用的命令!

原文地址:https://www.jb51.cc/wenti/3280544.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐