当前位置: 首页 > news >正文

Vim 高亮命令完整学习笔记

Vim 高亮命令完整学习笔记

文章目录

  • Vim 高亮命令完整学习笔记
    • 基础高亮搜索命令
      • 快速搜索命令
    • 正则表达式搜索
      • 数字匹配
      • 逻辑匹配
      • 单词边界匹配
      • 大小写控制
    • 正则表达式元字符详解
      • 字符类匹配
      • 字符集合
      • 数量限定符
      • 位置锚点
      • 分组和选择
    • 实用技巧
      • 1. 清除高亮
      • 2. 设置搜索选项
      • 3. 搜索历史
    • 常见应用场景
      • 代码搜索
      • 日志分析
      • 文本处理

Vim 作为强大的文本编辑器,提供了丰富的搜索和高亮功能。掌握这些命令可以大大提高文本处理效率。本文将系统介绍 Vim 的高亮搜索命令和正则表达式的使用。

基础高亮搜索命令

快速搜索命令

命令作用描述示例
shift + *向下查找并高亮显示匹配内容光标置于单词上,按shift + *
shift + #向上查找并高亮显示匹配内容光标置于单词上,按shift + #

这两个命令是最常用的快速搜索功能,可以快速查找光标所在单词的所有匹配项。

正则表达式搜索

数字匹配

命令作用描述示例
/Path [0-9]匹配单个数字匹配 “Path 1”、“Path 5”
/Path [0-9]\+匹配多个数字匹配 “Path 123”、“Path 45”

逻辑匹配

命令作用描述示例
/aaa\|bbb\|ccc高亮显示匹配 aaa、bbb 或 ccc 的行匹配包含任一关键词的行
/create_clock.*clkA高亮显示同时包含 create_clock 和 clkA 的行匹配同一行中包含两个关键词

单词边界匹配

命令作用描述示例
/eco\w*匹配以 eco 开头的单词匹配 “eco”、“economy”、“ecological”
/\w*mbist匹配以 mbist 结尾的单词匹配 “test_mbist”、“mbist”
/.*mbist匹配包含 mbist 的行匹配任何包含 “mbist” 的行
/.*mbist\w*\s*匹配包含 mbist 后跟字母数字及空格的行更精确的模式匹配

大小写控制

命令作用描述示例
/error\c不区分大小写的匹配匹配 “error”、“Error”、“ERROR”

正则表达式元字符详解

字符类匹配

符号描述示例
.匹配除换行符外的任意单个字符a.c匹配 “abc” 或 “axc”
\d匹配一个数字\d匹配 “1” 或 “9”
\D匹配一个非数字字符\D匹配 “a” 或 “@”
\w匹配一个字母、数字或下划线\w匹配 “a”、“1” 或 “_”
\W匹配一个非字母、非数字、非下划线字符\W匹配 “#” 或 “&”
\s匹配一个空白字符(空格、制表符、换行等)\s匹配空格、Tab 或换行符
\S匹配一个非空白字符\S匹配 “a”、“b”、“1”

字符集合

符号描述示例
[abc]匹配方括号中的任何单个字符[abc]匹配 “a”、“b” 或 “c”
[^abc]匹配任何不在方括号中的字符[^abc]匹配 “x” 或 “1”

数量限定符

符号描述示例
a{n}匹配前面的字符恰好出现 n 次\d{3}匹配 “123”
a{n,}匹配前面的字符至少出现 n 次\d{2,}匹配 “12” 或 “123”
a{n,m}匹配前面的字符出现 n 至 m 次\d{2,4}匹配 “12” 或 “1234”
*匹配前面的字符零次或多次a*匹配 “”、“a”、“aa” 等
+匹配前面的字符一次或多次a+匹配 “a” 或 “aa” 等
?匹配前面的字符零次或一次a?匹配 “” 或 “a”

位置锚点

符号描述示例
^匹配行的开始^a匹配以 “a” 开头的行
$匹配行的结束a$匹配以 “a” 结尾的行

分组和选择

符号描述示例
()分组,匹配括号内的内容(ab)+匹配 “ab”、“abab” 等
|或操作符,匹配左边或右边的表达式a|b匹配 “a” 或 “b”

实用技巧

1. 清除高亮

:noh

使用此命令清除当前的搜索高亮。

2. 设置搜索选项

:set hlsearch    " 开启搜索高亮
:set incsearch   " 开启增量搜索
:set ignorecase  " 忽略大小写
:set smartcase   " 智能大小写匹配

3. 搜索历史

  • / 后使用上下箭头键浏览搜索历史
  • 使用 n 跳转到下一个匹配项
  • 使用 N 跳转到上一个匹配项

常见应用场景

代码搜索

/function.*main     " 搜索包含 function 和 main 的行
/\<TODO\>          " 精确匹配单词 TODO
/^\s*#             " 匹配以 # 开头的注释行(可能有前导空格)

日志分析

/ERROR\|WARN\|FATAL    " 搜索错误、警告或致命信息
/\d{4}-\d{2}-\d{2}     " 搜索日期格式 YYYY-MM-DD
/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}  " 搜索 IP 地址

文本处理

/[A-Z]{2,}         " 搜索连续的大写字母
/\w+@\w+\.\w+      " 简单的邮箱地址匹配
/^\s*$             " 匹配空行或只有空格的行

相关文章:

  • 看板任务描述不清如何解决
  • Blogx项目配置文件读取流程详解
  • coze的基本使用
  • 【使用LLM搭建系统】7 搭建一个带评估的端到端问答系统
  • 第6章 方法 笔记
  • 自动化三维扫描检测赋能汽车铸造件高效检测
  • 【Flash 芯片 MTD 专栏】Flash芯片识别异常导致mtd子系统分区创建失败
  • 「Java基本语法」运算符与表达式
  • Brooks SLA5810 SLAMf10-20橡胶密封压力控制器Models SLA5810/20 and SLAMf10/20
  • VSCode主题设计
  • Unity基础-协程
  • STL 6分配器
  • matlab画图时如何屏蔽title等函数中缺省的latex解释
  • AI销售工具开发指南:关键技术点与行业解决方案
  • 在鸿蒙HarmonyOS 5中HarmonyOS应用开发实现QQ音乐风格的播放功能
  • C++ mutex 锁的使用
  • day27/60
  • 在鸿蒙HarmonyOS 5中实现抖音风格的草稿箱功能
  • 新能源知识库(34)什么是单一制和两部制
  • 经典的多位gpio初始化操作
  • 烟台商机互联做网站吗/刘连康seo培训哪家强
  • 站优云网络公司/百度笔记排名优化
  • 推广公司网站有哪些方式/河南关键词排名顾问
  • 石家庄网站建设模板服务/seo线上培训多少钱
  • 考虑了软件开发过程中的风险/鹤壁seo推广
  • 网站自动识别手机代码/如何自建网站