Vim 高亮命令完整学习笔记
文章目录
- [Vim 高亮命令完整学习笔记](#Vim 高亮命令完整学习笔记)
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" 等 |
` | ` | 或操作符,匹配左边或右边的表达式 |
实用技巧
1. 清除高亮
vim
:noh
使用此命令清除当前的搜索高亮。
2. 设置搜索选项
vim
:set hlsearch " 开启搜索高亮
:set incsearch " 开启增量搜索
:set ignorecase " 忽略大小写
:set smartcase " 智能大小写匹配
3. 搜索历史
- 按
/
后使用上下箭头键浏览搜索历史 - 使用
n
跳转到下一个匹配项 - 使用
N
跳转到上一个匹配项
常见应用场景
代码搜索
vim
/function.*main " 搜索包含 function 和 main 的行
/\<TODO\> " 精确匹配单词 TODO
/^\s*# " 匹配以 # 开头的注释行(可能有前导空格)
日志分析
vim
/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 地址
文本处理
vim
/[A-Z]{2,} " 搜索连续的大写字母
/\w+@\w+\.\w+ " 简单的邮箱地址匹配
/^\s*$ " 匹配空行或只有空格的行