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

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*$             " 匹配空行或只有空格的行
http://www.xdnf.cn/news/13209.html

相关文章:

  • 实战案例-FPGA如何实现JESD204B确定性延迟
  • AIX智能下载器,轻松获取软件图标
  • 制作一款打飞机游戏69:编辑器升级
  • git常用操作3 替换仓库和分支管理
  • 3D图像渲染和threejs交互坐标系入门知识整理
  • Vim 列操作命令完整学习笔记
  • 力扣热题100之二叉树的层序遍历
  • 云原生核心技术 (2/12): Docker 入门指南——什么是容器?为什么它比虚拟机更香?
  • 大语言模型如何处理长文本?常用文本分割技术详解
  • PostgreSQL 的扩展pg_surgery
  • 基于区块链的供应链溯源系统:构建与实践
  • Git将本地文件推送到GitHub仓库
  • 51单片机读取PCF8563时钟芯片
  • 2025 高考:AI 都在哪些地方发挥了作用
  • 行为设计模式之Memento(备忘录)
  • 守护数字世界:网络安全核心技术与实践策略
  • VSCODE配置ESP-IDF芯片选择遇见的问题
  • 赛尔发布SHARE 5系列航测相机,外业更高效,建模更优质
  • 代码随想录刷题day31
  • 从基础到实战-rmpt to webrtc
  • WiFi通信应用开发【保姆级】实现ESP8266模块数据上传到云端!!!
  • matlab 各种智能优化算法
  • 26考研 专业课 百度网盘夸克网盘
  • C++_红黑树
  • Easy系列PLC变频器控制功能块(ST源代码)
  • 积累-Vue.js 开发实用指南:ElementUI 与核心技巧
  • AI驱动下的商品详情API:2025年电商平台的智能化数据交互新趋势
  • Qt5 框架 CMake 探秘
  • 编译原理 学习 2025年6月10日11:17:54
  • 笔记——学习HTTP协议