Vim没有UI界面,所以也没有普通编辑器的ctrl-f/h调出查找替换对话框的功能,但是咱可以在底部命令区域使用更强大的,支持正则匹配的"/"查找命令,和":substitute"替换命令。
查找
查找字符请用"/"命令。
进入查找命令,具体操作就是在Normal模式下按'/'键,然后光标就会蹦到窗口底部的命令区域,在这里就可以输入、编辑要查找的文本,或者匹配模式。可以使用左右方向键在输入的内容间移动,用上下方向键在历史查找命令间切换,最后按回车执行查找命令。
比如要全文搜索"the",就是在Normal模式下输入"/the"然后回车;如果文本中的"the"比较多的话,默认配置下就会看到满屏的匹配高亮。这时候不要做别的操作,确保还处于Normal模式,然后按几下"n"(next)就会往下跳转到各个高亮的匹配;按大写的“N”就是反向操作,跳到上一个匹配。
与"/"命令对应的有一个"?"命令,即shift + /,就是把上面的操作全都反着来。比如要反向查找"the",就是在Normal模式下输入"?the",这时候按"n"向上跳到匹配项,按"N"下跳到匹配项。
查找命令的几个简单配置
忽略大小写
默认配置下,查找命令对大小写敏感,也就是说输入“/ignore”是找不到“Ignore”的。有的时候不需要匹配的那么严格,可以关掉此选项:
:set ignorecase
设置高亮
如果觉得满屏的匹配高亮看着眼晕,也可以关掉:
:set nohlsearch
要是后来改主意了,还可以再打开:
:set hlsearch
也有一种场景就是每次都需要匹配高亮,但是这次查找任务完成不再需要高亮提示了,可以只消除此次高亮,不改变hlsearch配置:
:nohlsearch
调整查找行为
有时我喜欢一直按住'n'键不放往下跳,看一下大致有多少匹配项,那就需要关闭默认开启的循环查找选项,以免到了文件底部光标又自动回到顶部又来一圈:
:set nowrapscan
查找命令还有一个默认开启的行为,就是在输入查找的文本时,每键入一个字符,都会同步高亮当前已找到的匹配项,如果不喜欢也可以关闭:
:set noincsearch
上述配置修改都是一次性的,如果想永远保留就需要写入启动配置文件$MYVIMRC里了。