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. mysql安装及加固

    mysql安装 查看是否安装mysql 我们先看一下有没有安装mysql yum list installed mysql | grep mysql 本地只安装了php链接mysql的库,没有安装my ...

  2. mongodb 3.0 WT 引擎性能测试(转载)

    网上转载来的测试,仅供参考.原文地址:http://www.mongoing.com/benchmark_3_0 类机器. 测试均在单机器,单实例的情况下进行. 机器A(cache 12G,即内存&g ...

  3. R 语言中的简单线性回归

    ... sessionInfo() # 查询版本及系统和库等信息 getwd() path <- "E:/RSpace/R_in_Action" setwd(path) rm ...

  4. Gym - 101173H Hangar Hurdles (kruskal重构树/最小生成树+LCA)

    题目大意:给出一个n*n的矩阵,有一些点是障碍,给出Q组询问,每组询问求两点间能通过的最大正方形宽度. 首先需要求出以每个点(i,j)为中心的最大正方形宽度mxl[i][j],可以用二维前缀和+二分或 ...

  5. entity framework delete table Error 11007:

    udate model from database 数据库表删除时,会出现“Error 11007:”的异常,此时在.edmx文件中找到此表的实体发现还存在,删除它就没有这个错误 了.

  6. 项目的Servlet类找不到

    先右击项目,

  7. Visual Studio 2008:路径设置

    造冰箱的大熊猫,本文适用于Visual Studio 2008中文版@cnblogs 2018/11/30 1.头文件路径设置 如果头文件所在路径未在环境变量中定义,编译时会出现C1083错误,提示无 ...

  8. cmake 简单操作

    实例一: main.c #include <stdio.h> int main( int argc, char *argv[] ) { printf("hello cmake!\ ...

  9. Linux压缩工具

    一.gzip/gunzip/zcat gzip, gunzip, zcat - compress or expand files gzip [ option .... ] [ filenames .. ...

  10. 【Red Hat Linux基础】 磁盘分区详细教程

    https://blog.51cto.com/sunjie123/1687535 Linux中添加新硬盘后对硬盘的分区以及挂载 https://www.linuxidc.com/Linux/2018- ...