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/  需要注意这样的情况下会