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的更多相关文章

  1. vimcommandfilepatchcmdfold VIM技巧之分隔窗口 一级精华

    VIM技巧之分隔窗口 分类: 技术2010-07-08 09:57 754人阅读 评论(1) 收藏 举报   同时显示两个不同的文件, 或者同时查看同一个文件的两个不同位置, 或者是同步显示两个文件的 ...

  2. VIM技巧(2)-删除匹配行

    VIM技巧(2)-删除匹配行 代码如下: * @Company:中国股份有限公司 * @author ymzhao (也有zyyang的) * @Date: Jan 22, 2014 11:25:29 ...

  3. VIM技巧(1)

    VIM技巧(1) 替换 36s/^\(.* = \)entity.\(.*\)$/\1this.GetShowName("\2",\2); 删除空行 %g/^$/d %g/^\s* ...

  4. 最佳vim技巧

    最佳vim技巧----------------------------------------# 信息来源----------------------------------------www.vim ...

  5. vim技巧:折叠快捷键

    vim技巧:折叠快捷键 以前用的挺熟的,一段时间不用了,快捷键又忘了,不得不重新再看手册,今天专门整理一下,以后查找起来也比较方便. zc 折叠,只折叠最外层的折叠zC 对所在范围内所有嵌套的折叠点进 ...

  6. vim技巧4 删除/保留文本中匹配行

    vim技巧:如何删除/保留文本中特定的行呢? <ol><a href="/ss/ss/www"> show invisibles</a> < ...

  7. Vim技巧之四大模式_普通模式

    Vim技巧之四大模式_普通模式 一见不钟情的普通模式 普通模式以下的强悍操作 什么是操作符 什么是动作命令 误操作怎么办 那种操作更划算 普通模式下的神奇大招 Vim技巧之四大模式_普通模式 众所周知 ...

  8. Vim技巧之四大模式_插入模式

    Vim技巧之四大模式_插入模式 在插入模式中及时更正错误 插入-普通模式 在插入模式模式以下直接粘贴指定寄存器的内容 插入模式中做运算 用字符编码插入很常使用字符 替换已有的文本 Vim技巧之四大模式 ...

  9. 会务准备期间材料准备工作具体实施总结 ----(vim技巧应用, python信息提取与整合, microsoft word格式调整批量化)

    会务准备期间材料准备工作具体实施总结(vim, python, microsoft word) span.kw { color: #007020; font-weight: bold; } code ...

随机推荐

  1. html 不刷新切换当前页面内容

    一个小功能,做个笔记: 操作流程是:导航产品有三个下拉子菜单,点击食品跳转,同时跳转出来的子页面中,选中食品这个当前项. 切换  食品  厨具   家电  三个选项卡在刷新页面的时候仍然停留在当前选中 ...

  2. cudaDeviceProp结构体

    struct cudaDeviceProp {char name[256];         //器件的名字size_t totalGlobalMem;    //Global Memory 的byt ...

  3. TO B是什么?TO C呢?

    总是听别人说 to B. to C 的 所以了解一下这个概念: 一.基本概念   1. TO B,B指的是== business==,中文即商业,企业:   2. TO C,C指的是customer, ...

  4. Druid连接池错误(数据库版本问题)

    前提 jdbc驱动: mysql-connector-java.8.0.13.jar durid依赖包:durid-1.0.9.jar mysql版本: mysql 8.0 1 错误 1.1 错误一 ...

  5. mysql自动化审核工具Yearning

    mysql自动化审核工具Yearning cd /opt/wget https://github-production-release-asset-2e65be.s3.amazonaws.com/10 ...

  6. Swagger使用--在一个Controller中使用相同(类似)参数的方法

    解决方法:在Startup.cs中加入CustomSchemaIds // Register the Swagger generator, defining 1 or more Swagger doc ...

  7. DOM添加

    ㈠添加元素的步骤 ⑴创建空元素 ⑵设置关键属性 ⑶将元素添加到DOM树   ㈡创建空元素 var elem = document.createElement('table');   示例: var t ...

  8. CSS3 的背景属性

    ㈠background-size 属性 ⑴background-size 属性规定背景图片的尺寸. ⑵在 CSS3 之前,背景图片的尺寸是由图片的实际尺寸决定的.在 CSS3 中,可以规定背景图片的尺 ...

  9. 《剑指offer》算法题第三天

    今日题目: 斐波那契数列 青蛙跳台阶问题(及其变种:变态跳台阶) 矩形覆盖 旋转数组的最小数字 矩阵中的路径 机器人的运动范围 细心的同学会发现,第1,2,3题其实对应的是<剑指>书上的同 ...

  10. (Java多线程系列四)停止线程

    停止线程 停止线程的思路 ①使用退出标志,使线程正常退出,也就是当run()方法结束后线程终止. class Thread01 extends Thread { // volatile关键字解决线程的 ...