查找进阶

回忆上节课内容

  • 上次是搜索,是全文搜索
  • 和我们以前的行内有点像

    • / 正向,? 反向
    • n 保持方向,N 改变方向
    • hls 让搜索结果高亮
    • wrapscan 可以从头搜索
    • noh 取消本次高亮

实时搜索

  • :set incsearch

    • 实时匹配搜索输入
  • :set noincsearch

    • 不实时匹配搜索输入

大写小写

  • 如果查找要忽略大小写的话

    • 就用 ignorecase
    • :set ignorecase
    • 简写为 :se ic
    • 取消为 :se noic
  • :se ic 可以和 :set smartcase 智慧大小写配合

    • 如果搜索模式里面有 大写字母 就完全匹配
    • 如果没有 大写字母 就忽略大小写
  • 还可以直接在搜索项里加开关

    • /oeasy\c 不区分大小写的 oeasy
    • /oeasy\C 区分大小写的 oeasy
  • 具体可以 :h ignorecase

查找当前

  • 如果我们在一个单词上面的时候

    • 按下 *
    • 就是查找当前光标所在的单词
    • 这很适合查找某个函数名
    • 或者查找变量名的引用
  • 继续遍历搜索

    • n 保持方向
    • N 改变方向
  • #

    • 向上进行查找
  • *、#

    • 刚好是电话按键中的对称两个

明确头尾的单词

  • 如果我查找的是 /as

    • as 符合要求
    • ask 符合要求
    • has 也符号要求
    • oeasy 都符合要求
  • 要以 as 为单词结尾

    • /as\>
    • as 符合
    • has 符合
  • 要以 as 为单词开头

    • /\<as
    • as 符合
    • ask 符合
  • 我们就要 as 这个单词

    • /\<as\>
    • 只有 as 符合

快速不按单词查找

  • 如果我们使用 * 的话

    • 是按照整个单词查找的
    • 比如放到 asa
    • 就是说查到的一定得是个完整单词
    • /\<as\>
  • 如何不按照单词查找呢?

    • 比如放到 asa 上,
    • g*、g#进行查找
    • 只要有 as 就算
    • oeasy 也符合要求

设置 vim

  • 如果关于搜索高亮的这些设置你想每次打开 vim 就设置好
  • 那需要设置当前用户的vim配置文件 vi ~/.vimrc
  • G 到文件的尾部
  • o 在下面新建一行
  • set hlsearch 设置搜索高亮
  • set wrapscan 设置从头搜索
  • 然后重启这些配置就永远保存在你这个当前用户的 vim 里面了
  • 当然,如果是实验楼重启新环境的话会消失

总结

  • 实时搜索

    • :set incsearch
  • 大写小写

    • ignorecase
  • 查找当前单词

    • * 正向按单词完全匹配
    • # 反向按单词完全匹配
    • g* 正向不按单词匹配
    • g# 反向不按单词匹配
  • 继续查找

    • n保持方向
    • N改变方向
  • 这个搜索可以做一些模糊匹配吗?
  • 下次再说吧

[Github地址] (https://github.com/overmind1980/vimtutorial)

[Gitee地址] (https://gitee.com/overmind1980/vimtutorial)

[蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)

oeasy教您玩转vim - 34 - # 查找进阶的更多相关文章

  1. oeasy教您玩转vim - 56 - # 字符可视化模式

    ​ 可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...

  2. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  3. oeasy教您玩转vim - 53 - # 批量替换

    查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...

  4. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  5. oeasy教您玩转linux010108到底哪个which

    到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?

  6. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  7. oeasy教您玩转linux010202软件包管理apt

    顾一下 上一部分我们都讲了什么?

  8. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  9. oeasy教您玩转linux010107那啥在哪 whereis

    回忆上次内容 上次讲了 ls 的参数 (arguement) 和选项 (option) 的设置. 现在我们要制作这样一个列表:

  10. oeasy教您玩转python - 006 - # hello world

    ​ Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...

随机推荐

  1. 环境声音分类的深度 CNN 模型

    具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI 声音事件的分类精度与特征提取有很强的关系.本文将深度特征用于环境声音分类(ESC)问题.深层特征是通过使 ...

  2. tcc-transaction源码详解

    更多优秀博文,请关注博主的个人博客:听到微笑的博客 本文主要介绍TCC的原理,以及从代码的角度上分析如何实现的:不涉及具体使用示例.本文通过分析tcc-transaction源码带大家了解TCC分布式 ...

  3. 基于深度学习的入侵检测系统综述文献概述——AI科研之路

    1.研究方向的背景是什么? (1)互联网发展迅速,网络安全态势严重 (2)现在的入侵检测准确率不够高,不能适应现在的需求 2.前人做了哪方面的工作获得了什么成果? 近代: 将网络作为入侵来源之后发展( ...

  4. Django模板templates

    1.模板文件的路径配置 2.模板中变量替换 3.变量渲染之深度查询 4.内置过滤器 过滤器的语法: {{obj|过滤器名称:过滤器参数}} 内置过滤器: 过滤器例子: 5.注释 6.多行注释 7.if ...

  5. golang 切片原理面试题

    package main import "fmt" func main() { var s = make([]int, 0, 10) _ = append(s, 1,2,3) fm ...

  6. 详解在Linux中同时安装配置并使用 MySQL5.7 和 MySQL8.0

    最近需要使用mysql8.0版本,但是原本的mysql5.7版本已经被多个服务依赖,于是想想能不能同一台服务器装多个版本的mysql,一查确实可行,这里做一个记录方便自己后期回忆 阅读本文前请注意!! ...

  7. 红白机基本原理(二) CPU

    CPU 首发公号:Rand_cs NES 使用的 CPU 为 6502,但与标准的 6502 有些许不同,最大的不同在于 NES 使用的芯片拥有一个 pAPU(pseudo-Audio Process ...

  8. kettle从入门到精通 第六十五课 ETL之kettle 执行动态SQL语句,轻松实现全量&增量数据同步

    本次课程的逻辑是同步t1表数据到t2表,t1和t2表的表机构相同,都有id,name,createtime三个字段. CREATE TABLE `t1` ( `id` bigint NOT NULL ...

  9. vue排行榜 加单位

  10. ISO pod 使用

    pod 安装 相关依赖包 新建podfile 文件 pod init 编辑podfile文件添加第三方库 // pod '第三方依赖库名', '版本号' pod 'SDWebImageSwiftUI' ...