最开始介绍vim的时候,提到vim有普通模式、插入模式、可视模式和命令行模式,并且已经对这几个模式做了详细的介绍了。除了这几个模式以外,vim还有一个非常强大的模式——查找模式,为什么最开始没有将其列举出来呢,这是因为我很少看到有教程将它与前面介绍的模式并列作为一个新的模式。但是在日常使用中,我又习惯将它叫做查找模式。我在这里就不深究这些了,请读者自行判断。

插入模式使用

我们可以在普通模式下输入 / 进入插入模式。在其后面输入想要查找的字符串,按下<CR> 进行查找。此时vim光标会自动跳转到匹配的位置,并将对应位置高亮显示( 这个是 neovim的特性,vim高亮可能需要一些配置)。使用 <Esc> 将会结束查找,退回到普通模式。

在匹配模式中,可以使用 n 来跳转到下一个匹配位置,按下N 将跳转到上一个匹配位置。这个查找是循环进行的,也就说在跳转到最后一个匹配位置之后,再使用 n 将会跳转到第一个匹配位置。



我们可以使用 wrapscan 这个选项关闭这一特性,例如在neovim 中使用如下代码

vim.o.wrapscan = false

或者在vim中使用这样的代码

set nowrapscan

在查找模式中,可以使用 <UP> (也就是方向键) 来遍历之前查找项。

取消高亮的匹配

vim 中可以使用 hlsearch 来设置将匹配项进行高亮显示( neovim 则默认支持该项) 。高亮显示匹配项这个特征在我们寻找这些匹配项的位置时十分有用,但是一旦找到想去的地方之后,这些高亮显示的内容却会干扰我们的视线,特别是匹配项过多的时候。这个时候我们可以使用 noh 来取消高亮。但是每次这么输入比较麻烦,我们可以绑定一个快捷键,快速取消高亮。这里还是等到介绍配置的时候再介绍吧。

执行前预览第一处匹配

在一般的vim中,一定要等到输入完完整的内容,然后按下 <CR> 键之后才会进行匹配,而执行前预览会在每次有新输入的时候更新匹配。类似于下面的效果。



输入 s 的时候,所有 s 字符都被选中,输入后面的内容时再次匹配,只高亮匹配上的。

vim模式并未开启这个效果,可以使用 incsearch 来激活这一效果。而neovim则默认支持这一选项。

快速选中光标所在单词进行搜索

这里主要为了介绍 *这个命令,当光标处于目标单词的时候,按下 * 将直接进行搜索。

将光标移动到匹配的结尾

默认情况下,使用匹配模式时,光标都在匹配字符串的开头位置,我们可以在搜索结尾处添加 /e 来让vim将光标移动到匹配字符串的结尾处

相信通过这篇文章各位小伙伴已经初步了解了如何进行查找,但这些内容是远远不够的,vim提供了强大的搜索处理能力,在下一篇我们将慢慢展开介绍。

vim 从嫌弃到依赖(17)——查找模式的更多相关文章

  1. 常用算法3 - 字符串查找/模式匹配算法(BF & KMP算法)

    相信我们都有在linux下查找文本内容的经历,比如当我们使用vim查找文本文件中的某个字或者某段话时,Linux很快做出反应并给出相应结果,特别方便快捷! 那么,我们有木有想过linux是如何在浩如烟 ...

  2. 『学了就忘』vim编辑器基础 — 96、末行模式中的相关命令

    目录 1.在文档中显示行号 2.是否显示文档内容相关颜色 3.是否将查找的字符串高亮显示 4.是否显示右下角的状态栏 5.是否在左下角显示如"--INSERT--"之类的状态栏 6 ...

  3. 1.3 正则表达式和Python语言-1.3.5使用 search()在一个字符串中查找模式(搜索与匹配 的对比)

    1.3.5 使用 search()在一个字符串中查找模式(搜索与匹配的对比) 其实,想要搜索的模式出现在一个字符串中间部分的概率,远大于出现在字符串起始部分的概率.这也就是 search()派上用场的 ...

  4. 17.解释器模式(Interpreter Pattern)

    17.解释器模式(Interpreter Pattern)

  5. 《Practical Vim》第五章:命令行模式

    前言 出于历史原因,命令行模式又叫 Ex 模式,它具有的功能有: 读写文件:比如 :edit, :write 等等 创建标签页或者窗口:比如 :tabnew :split 操作缓存区,比如: bnex ...

  6. 迁移到MSYS2 与 Qt 工具链注意的几个事情(g++在链接时,符号依赖项查找遵循从左至右的顺序,但qmake会自动合并造成错误。使用脚本给Mingw32-make创造出一个局部的VC编译环境)

    Microsoft Visual Studio 2015社区版提供了强大的开发体验,且 Qt 提供了预编译版本.然而,由于客户提出兼容Windows XP ~ Windows 8.1 这样宽泛的环境要 ...

  7. mac /linux vi/vim永久显示行号开启高亮模式

    临时显示:进入vi编辑器,输入命令 :set number     //下次在进入vi 无法显示行号 :set nonumber  //本次vi关闭行号显示 vi 每次修改后推荐使用命令: sourc ...

  8. Vim使用技巧(2) -- 插入模式技巧 【持续更新】

    组合快捷键 Ctrl + h //删除前一个字母(同退格键) Ctrl + w //删除前一个单词 Ctrl + u //删除到行首 Esc //切换到普通模式 Ctrl + [ //切换到普通模式 ...

  9. vim /vi中对字符串的查找并替换

    vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询.    :s/vivian/sky/ 替换当前行第一个 vivian ...

  10. JS常用的设计模式(17)—— 状态模式

    状态模式主要可以用于这种场景 1 一个对象的行为取决于它的状态 2 一个操作中含有庞大的条件分支语句 回想下街头霸王的游戏. 隆有走动,攻击,防御,跌倒,跳跃等等多种状态,而这些状态之间既有联系又互相 ...

随机推荐

  1. schedule 定时运行 Python 函数

    安装 pip install schedule 例子 每x分钟运行一次 import schedule import time def job(): print("I'm working.. ...

  2. 🤗 Datasets 使用小贴士: 探索解决数据集无法下载的问题

    Hugging Face Hub 是强大的机器学习的数据源.相信大家在国内用 Hugging Face Datasets 都遇到过下载的问题.譬如: import datasets dataset = ...

  3. 聚合查询 分组查询 F与Q查询 添加新字段

    目录 聚合查询 aggregate 聚合函数 起别名 分组查询 annotate 注释函数 起别名 分组查询报错 分组查询练习 总结 添加新字段 F与Q查询 F查询 字符串拼接 concat方法 Q查 ...

  4. Tomcat8 安装及配置步骤

    Tomcat8安装及配置步骤 1.下载tomcat8 https://tomcat.apache.org/download-80.cgi#8.5.85 根据自己电脑的系统 ,下载对应的版本zip ,我 ...

  5. 题解 CF1550C. Manhattan Subarrays (思维)

    来源:Educational Codeforces Round 111 (Rated for Div. 2) 不难但很好的思维题 设 \(d(p,q)\) 为 \(p,q\) 两点之间的曼哈顿距离 给 ...

  6. L1-020 帅到没朋友 (20分)

    当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友.本题就要求你找出那些帅到没有朋友的人. 输入格式: 输入第一行给出一个正整数N(≤100),是已知朋友圈的个数:随后N行,每行首先给 ...

  7. xapian 搜索引擎介绍与使用入门

    Xapian 是一个开源搜索引擎库,使用 C++ 编写,并提供绑定(bindings )以允许从多种编程语言使用.它是一个高度适应性的工具包,允许开发人员轻松地将高级索引和搜索功能添加到自己的应用程序 ...

  8. Serverless 应用托管助力企业加速创新

    作者: 熊峰 | 阿里云技术专家 云原生时代的 Serverless 应用托管架构 回顾过去十年,数字化转型将科技创新与商业元素不断融合.重构,重新定义了新业态下的增长极.商业正在从大工业时代的固化范 ...

  9. <vue 组件 3、父子组件相互访问>

    代码结构 一.     01-组件访问-父访问子 1. 效果 点击后在父组件里展示子组件的参数 2.代码 01-组件访问-父访问子.html <!DOCTYPE html> <htm ...

  10. macOX常用快捷键(结尾有彩蛋)

    macOX的快捷键与windows10有所不同,了解了以后会更加提高我们的工作效率. Mac中主要有四个修饰键,分别是Command,Control,Option和Shift. 一.基本的快捷键: C ...