vim技巧总结-查找
jopen
10年前
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/ 需要注意这样的情况下会