查找进阶

回忆上节课内容

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

    • / 正向,? 反向
    • 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. handsontable有显示值与实际值的下拉框cobbobox扩展

    一.效果与使用 二.代码 /// <reference path="handsontable.full.min.js" /> //封闭在IIFE中 (Handsonta ...

  2. 昇腾开发全流程 之 MindSpore华为云模型训练

    前言 学会如何安装配置华为云ModelArts.开发板Atlas 200I DK A2, 并打通一个训练到推理的全流程思路. 在本篇章,首先我们开始进入训练阶段! 训练阶段 A. 环境搭建 MindS ...

  3. KPM算法求字符串的最小周期证明

    先给出公式 ans = n - LPS[n-1] 其中ans为最小周期,n为给出的由假设的周期字符串中提取出的子串长度,LPS为前缀函数,n-1为字符串最后的位置下标 证明如下 证明ans = n - ...

  4. nginx接受请求连接事件模块流程

    操作系统内核: 三次握手,当用户发来一个 SYN 报文时,系统内核会返回一个SYN+ACK确认给客户端,当客户端再次发送ACK来的时候,此时就已经建立了三次握手. 完成三次握手后,操作系统会根据系统内 ...

  5. mysql binlog查看指定数据库

    1.mysql binlog查看指定数据库的方法 MySQL 的 binlog(二进制日志)主要记录了数据库上执行的所有更改数据的 SQL 语句,包括数据的插入.更新和删除等操作.但直接查看 binl ...

  6. 鸿蒙HarmonyOS实战-ArkTS语言基础类库(概述)

    一.概述 1.什么是语言基础类库 语言基础类库,也称为标准库或核心库,是编程语言提供的一组内置的基础功能和常用工具的集合.它通常包含了各种数据结构.算法.输入输出处理.字符串处理.日期时间处理.文件操 ...

  7. python+k8s——基础练习

    列表 core_api = client.CoreV1Api() # 管理核心资源(Pod, Service, ConfigMap 等) apps_api = client.AppsV1Api() # ...

  8. windows报错

    如果说你dns没有权威的话1.先去long.com上面右键属性把"区域传送给所有服务器打勾"2.右键属性,在名称分析器中,输入要添加为辅助dns的服务器的ip显示解析成功就可以了

  9. C#.NET Winform使用线程承载WCF (硬编码配置)

    winform同步承载WCF时,遇到大量请求,可能会阻塞UI线程.这时就需要开个线程来承载WCF. 1.硬编码形式创建WCF服务,WCFServer类: using CommonUtils; usin ...

  10. String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的

    a.可变性:String类中使用字符数组保存字符串,private  final   char   value[],所以string对象是不可变的.StringBuilder与StringBuffer ...