oeasy教您玩转vim - 34 - # 查找进阶
查找进阶
回忆上节课内容
- 上次是搜索,是全文搜索
和我们以前的行内有点像
- / 正向,? 反向
- 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 改变方向
#
- 向上进行查找
*、#
- 刚好是电话按键中的对称两个

明确头尾的单词
如果我查找的是
/asas符合要求ask符合要求has也符号要求oeasy都符合要求
要以
as为单词结尾/as\>as符合has符合
要以
as为单词开头/\<asas符合ask符合
我们就要
as这个单词/\<as\>- 只有
as符合

快速不按单词查找
如果我们使用 * 的话
- 是按照整个单词查找的
- 比如放到
as的a上 - 就是说查到的一定得是个完整单词
/\<as\>
如何不按照单词查找呢?
- 比如放到
as的a上, - 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 - # 查找进阶的更多相关文章
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010108到底哪个which
到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转linux010202软件包管理apt
顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010201持续输出yes
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010107那啥在哪 whereis
回忆上次内容 上次讲了 ls 的参数 (arguement) 和选项 (option) 的设置. 现在我们要制作这样一个列表:
- oeasy教您玩转python - 006 - # hello world
Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...
随机推荐
- jQuery——动画加载页面
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script&g ...
- CMake 进行多项目中dll的编译和链接
前言(maybe废话) 最近正在学习cherno的游戏引擎教程,他使用的是vs进行构建的,后面换了premake.而我用的是vscode+cmake,所以在构建整个项目的时候踩了不少的坑,也找了很多资 ...
- undefined和null js数据类型转换自动转换布尔类型
基本数据类型之undefined和null undefined是表示未找到,是变量没有正确赋值数据时,生成的数据类型 var int : console.log(int)//undefined nul ...
- php分页查询 子查询
分页查询 将查询结果只显示一部分 通过两个参数:参数1 起始数据的索引下标 参 ...
- graylog 大于等于 查询
graylog 大于等于 查询 :>=1000 不要有空格 如下: pay_channel:PSBC AND hs:>=4
- vue中退出循环的方法
forEachforEach不能使用break和continue.return也无法退出循环. 使用break,会报错(报错信息:SyntaxError: Illegal break statemen ...
- kettle从入门到精通 第六十九课 ETL之kettle kettle cdc mysql,轻松实现实时增量同步
1.之前kettle cdc mysql的时候使用的方案是canal+kafka+kettle,今天我们一起学习下使用kettle的插件Debezium直接cdc mysql. 注:CDC (Chan ...
- 字符数组数据映射转换到实体对象model注解方式 demo
1.model对象 public class UserModel { @ColumnAnnotation(index=0) private String username; @ColumnAnnota ...
- WebApi 接口参数不再困惑
从网上看了WEBAPI理解感觉不错分享一下 前言:还记得刚使用WebApi那会儿,被它的传参机制折腾了好久,查阅了半天资料.如今,使用WebApi也有段时间了,今天就记录下API接口传参的一些方式方法 ...
- Unity中使用ProtocolBuffer
Unity中使用ProtocolBuffer unityProtocolBufferUnity ProtocolBuggerC# ProtocolBuffer Unity中使用ProtocolBuff ...