vim技巧总结-查找

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/
相关文章
相关标签/搜索