首页 > 代码库 > vim技巧2

vim技巧2

vim技巧总结-查找

1.查找命令
1.1 执行一次查找
普通模式下,/会调用查找提示符,如果vim扫描到文档尾部仍没有找到目标,会提示"search hit BOTTOM, continuing at TOP"。这意味着文档会回绕至开头继续查找。
如果想关闭文档回绕查找,可以关闭‘wrapscan‘选项:
:set nowrapscan
1.2 指定查找方向
/键查找时,执行正向扫描,?键查找时,执行反向扫描。
1.3 重复上一次查找
n用于跳转到下一次匹配,N用于跳转到上一次匹配。
1.4 回溯之前的查找
/或?查找提示符出现后,可以通过<Up>键,浏览之前的查找命令。

2. 高亮匹配到的查找
默认下,vim不会把所有匹配显示的展示出来,通过启用‘hlsearch‘选项,可以把所有匹配高亮显示。
禁用此模式:
set nohlsearch(se nohls,se hls!)

3. 预览第一次匹配
‘incsearch‘选项会使vim根据查找字符,预览到第一次匹配。每次输入字符,都会即时更新预览内容。
:set incsearch
3.1 检查是否存在匹配
如果只是想确认单词存在,可以精确匹配,然后<Esc>,马上结束查找并返回原处。
3.2 根据预览结果对查找域自动补全
<C-r><C-w>可以对当前匹配结果自动补全。

4. 统计当前模式匹配的次数
:%s/<pattern>//gn
实际上调用了substitute命令,标志位n会抑制正常的替换操作,替换域无论为什么都是不生效的。

5. 将光标偏移到查找匹配的结尾
每次执行查找命令时,光标总是被定为到匹配的首字母上,可以通过偏移功能将光标定位于查找匹配的结尾。
search-offset选项控制这一操作。
可以在查找时键入/<pattern>/e<CR>,即可以将光标置于查找匹配的结尾。

6. 对完整的查找匹配进行操作
Vim查找命令可以允许我们在所有的匹配之间快速调整,但是在完整的匹配上进行操作也是必要的。
如果想把文档里的rb和ruby字符全部转变为大写,
/\vr(u)?by(y)? \C<CR>    => 元字符\C会强制区分大小写
这样可以将所有的匹配字符高亮起来,然后
gU//e<CR>    =>    //<CR>    =>    .    =>    //<CR>.

7. 利用查找历史,迭代完成复杂模式
示例文件1.txt:
My name is ‘CaoQing‘.
My dog is ‘PiPi‘.
I love ‘PiPi‘.
匹配所有单引号里的内容。
7.1 粗略匹配
/\v‘.+‘\C/
需要注意这样的情况下会

 

vim技巧2