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/