查找进阶

回忆上节课内容

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

    • / 正向,? 反向
    • 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. PHP常用排序算法02——快速、归并

    接着上篇,我们继续来学习下工程中最常用的排序算法,适合大规模数据排序的算法,快速排序(quickSort)和归并排序(mergeSort). PS:对排序等算法还不太了解的同学,可以去看下这个链接哦, ...

  2. 模拟重装Kubernetes(k8s)集群:删除k8s集群然后重装

    目录 一.系统环境 二.前言 三.重装Kubernetes集群 3.1 环境介绍 3.2 删除k8s所有节点(node) 3.3 kubeadm初始化 3.4 添加worker节点到k8s集群 3.5 ...

  3. Java21 GA新特性-虚拟线程详解

    本文转载至:虚拟线程 - VirtualThread源码透视 - throwable - 博客园 (cnblogs.com) 一. 前提 JDK19于2022-09-20发布GA版本,该版本提供了虚拟 ...

  4. CSS——动画

    @keyframes 规则 要创建 CSS 动画,您首先需要了解 @keyframes 规则,@keyframes 规则用来定义动画各个阶段的属性值,类似于 flash 动画中的关键帧,语法格式如下: ...

  5. 实战SQL优化(以MySQL深分页为例)

    1 准备表结构 CREATE TABLE `student` ( `id` int NOT NULL AUTO_INCREMENT, `user_no` varchar(50) CHARACTER S ...

  6. Swift全局变量的线程安全分析

    一.示例代码 import UIKit let obj = TestObj() class TestObj { init() { print("\(type(of: self)) init& ...

  7. C# 指针简单使用

    1. 使用unsafe C# 支持 unsafe 上下文,你可在其中编写不可验证的代码. 在 unsafe 上下文中,代码可使用指针.分配和释放内存块,以及使用函数指针调用方法. C# 中的不安全代码 ...

  8. JVM面试篇(下)

    垃圾收集器 简述 Java 垃圾回收机制 在 java 中,程序员是不需要显示的去释放一个对象的内存的,而是由虚拟机自行执行.在 JVM 中,有一个垃圾回收线程,它是低优先级的,在正常情况下是不会执行 ...

  9. 不挑电脑安装 WIndows11 用 Rufus这个软件

    下 Rufus 找一个U盘先别动 然后去夸克网盘下载 windows11 24h2 iso 版本的安装文件,陶10块钱加速下载下来 然后安装Rufus 然后使用这个启动盘制作工具选择下载好的 iso原 ...

  10. 双等号==与equals的区别与联系

    ==与equals的区别与联系: 1)对于双等号==来说,比较的是值是否相等 如果双等号比较的是基本数据类型的变量,则直接比较变量的值是否相等, 如果双等号比较的是引用类型的变量,则比较的是所指向对象 ...