Vim 修改、查找与替换
文本编辑器最基本的就是对进行增删改查,前面的小节我们已经讲了增删等相关以及操作。这一节我们来看一下、查找和替换。
使用过 Word 的人应该很知道,在 Word 中我们使用 ctrl+f 来查找我们需要的。但是 Word 的查找比较单一,Vim 则提供了更加丰富的查找场景:
高亮查找
大小写敏感查找
重复查找
预览查找
1. 查找
使用查找我们需要进入普通模式,普通模式如何进入前面的小节已经讲了,这里不再过多赘述。下面我们来看下针对不同的如何执行查找操作:
Tips:通模式下按下 :
,这时你会看到窗口的左下角出现了 :
,这时我们就可以输入我们要查找的了。
开启高亮查找:在左下角的 :
后面输入 set hls
,即可高亮查找。
开启预览查找:在左下角的 :
后面输入 set incsearch
,这时 Vim 会根据输入提前预览匹配,并且实时更新
正向扫描:在左下角的 :
后面输入/
,开始从上向下。
反向扫描:在左下角的 :
后面输入?
,开始从下向上。
大小写敏感查找:在左下角的 :
后面输入/\c
,查找的结果会大小写不敏感。
大小写不敏感查找:在左下角的 :
后面输入/\C
,查找的结果会大小写敏感。
查找小实战
随便打开查找 name/Name
:
2. 与替换
经常替换操作都是简单的某个字符串替换。Vim 中提供了很多便捷的小技巧来满足需求
来看下下面这个案例:进入替换模式,替换单个字符并单个单词
3. substitute 替换命令
除了简单的快捷键替换之外。还有更加强大的命令式替换。这种方式为了处理更加复杂的场景,尤其是结合正则表达式。
substitute 是 Vim 中最常用的和替换的命令。可以缩写为 s。
替换公式::[range]s[ubstitute]/{pattern}/{string}/[flags]
认情况下,s 只会作用域当前行的第匹配项。
flag选项
range 选项
实操部分
打开 main.go
,并将中的 time 全部替换为 ting:
正则表达式实战
正则表达式会在后面章节中详细讲解。这里只是针对查找场景做展示。
查找 main.go 中包含在小括号中的:
Tips: 需要注意这里查找标识符后面的\v: 这个主要为了进入 very magic 模式——也就是符合正常正则表达式规则的模式。详细部分会在后面正则表达式中详细讲解。
4. 小结
本节是工作中使用比较多的。主要难点还是在于结合正则表达式,本身的规则并不复杂。上述规则基本满足很多工作要求。Vim 很多哲学都是一脉相承的,只要融会贯通即可。