查找进阶

回忆上节课内容

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

    • / 正向,? 反向
    • 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. jQuery——动画加载页面

    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script&g ...

  2. CMake 进行多项目中dll的编译和链接

    前言(maybe废话) 最近正在学习cherno的游戏引擎教程,他使用的是vs进行构建的,后面换了premake.而我用的是vscode+cmake,所以在构建整个项目的时候踩了不少的坑,也找了很多资 ...

  3. undefined和null js数据类型转换自动转换布尔类型

    基本数据类型之undefined和null undefined是表示未找到,是变量没有正确赋值数据时,生成的数据类型 var int : console.log(int)//undefined nul ...

  4. php分页查询 子查询

     分页查询                 将查询结果只显示一部分                 通过两个参数:参数1 起始数据的索引下标                             参 ...

  5. graylog 大于等于 查询

    graylog 大于等于 查询 :>=1000  不要有空格 如下: pay_channel:PSBC AND hs:>=4

  6. vue中退出循环的方法

    forEachforEach不能使用break和continue.return也无法退出循环. 使用break,会报错(报错信息:SyntaxError: Illegal break statemen ...

  7. kettle从入门到精通 第六十九课 ETL之kettle kettle cdc mysql,轻松实现实时增量同步

    1.之前kettle cdc mysql的时候使用的方案是canal+kafka+kettle,今天我们一起学习下使用kettle的插件Debezium直接cdc mysql. 注:CDC (Chan ...

  8. 字符数组数据映射转换到实体对象model注解方式 demo

    1.model对象 public class UserModel { @ColumnAnnotation(index=0) private String username; @ColumnAnnota ...

  9. WebApi 接口参数不再困惑

    从网上看了WEBAPI理解感觉不错分享一下 前言:还记得刚使用WebApi那会儿,被它的传参机制折腾了好久,查阅了半天资料.如今,使用WebApi也有段时间了,今天就记录下API接口传参的一些方式方法 ...

  10. Unity中使用ProtocolBuffer

    Unity中使用ProtocolBuffer unityProtocolBufferUnity ProtocolBuggerC# ProtocolBuffer Unity中使用ProtocolBuff ...