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. 垃圾回收gc --翻译

    原文在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management.基本保持了平译,并在一些地方做了概念解释.(转 ...

  2. pytest重复执行

    安装 pip install pytest-repeat 命令: pytest --count=10 test_file.py

  3. 我所亲身经历的CMMI3 [问题点数:20分,结帖人outer2000]--转载

    很荣幸,作为某公司软件部门的软件项目经理,亲身经历了CMMI3,以下就把整个改进过程,用自己的亲身体会,详述如下,文中一些观点与看法难免带有个人感情,还请各位酌情参考. 公司情况简单介绍下,因为是为某 ...

  4. JavaScript原型初学者指南

    视频Videohttps://www.youtube.com/watch... 前言 如果不好好的学习对象,你就无法在JavaScript中获得很大的成就.它们几乎是JavaScript编程语言的每个 ...

  5. nginx第三天

    nginx架构分析 nginx模块化 nginx基于模块设计,每个模块是一个功能实现,分布式开发,团队协作 核心模块,标准http模块,可选http模块,邮件模块,第三方模块 编译后的源码目录  ob ...

  6. 多对多第三张表的创建方式 和 forms组件的使用

    目录 一.多对多第三张表的创建 1. 全自动方式 (1)实现代码 (2)优点和不足 2. 纯手撸方式(了解) (1)实现代码 (2)优点和不足 3. 半自动方式(推荐使用) (1)实现代码 (2)优点 ...

  7. web前端_DOM操作

    DOM(Document Object Model 文档对象模型) 一个web页面的展示,是由html标签组合成的一个页面,dom对象实际就是将html标签转换成了一个文档对象.可以通过dom对象中j ...

  8. Akka 介绍

    欢迎使用 Akka,Akka 是一套被用来在在多处理器核心和网络之间被设计可扩展和具有相关弹性的开源工具集.Akka 允许你更加关注商业需求而不是书写低级别的代码来提供可靠性,容错率和高性能. 很多常 ...

  9. TTTTTTTTTTTT CF 653D 送邮递员

    链接:给一张n个点m条带权边的有向图,有x个人从起点出发到终点,每个人带的都带相同重量的货物, 规定一条边最多能经过其上权的重量的货物,问最多能带多重的货物? 2 ≤ n ≤ 50, 1 ≤ m ≤  ...

  10. 家谱(gen)x

      家谱(gen) 时间限制  2S [问题描述]     现代的人对于本家族血统越来越感兴趣,现在给出充足的父子关系,请你编写程序找到某个人的最早的祖先. [输入格式]gen.in 输入文件由多行组 ...