如何在Vim/gVim中手动查找含重复字符串的行?
在Vim/gVim中高亮
connect后含重复字符串的行 临时高亮方案
- 开启搜索高亮:
:set hlsearch - 执行匹配搜索,直接高亮符合模式的内容:
若要高亮整行,改用整行匹配的正则:/connect \([^ \t]\+\) \1/^.*connect \([^ \t]\+\) \1.*$
自定义整行高亮(更醒目)
- 创建自定义高亮组(可自行调整颜色):
:hi DuplicateConnect ctermbg=yellow guibg=yellow - 添加匹配规则,让符合条件的整行应用该高亮:
:match DuplicateConnect /^.*connect \([^ \t]\+\) \1.*$/ - 取消高亮时执行:
:match
永久生效配置
将以下内容添加到你的~/.vimrc(Linux/macOS)或_vimrc(Windows)文件中,每次打开Vim时自动高亮目标行:
hi DuplicateConnect ctermbg=yellow guibg=yellow autocmd BufEnter * match DuplicateConnect /^.*connect \([^ \t]\+\) \1.*$/
正则说明
connect \([^ \t]\+\) \1 的含义:
connect:匹配关键字connect及后续空格\([^ \t]\+\):捕获第一个非空白(空格/制表符)的字符串\1:匹配空格加之前捕获到的完全相同的字符串
以你提供的示例文本为例:
1 connect ABC ABC
2 connect X YZ
3 connect 123 123
执行上述操作后,第1、3行会被高亮,因为它们的connect后存在重复字符串。
内容的提问来源于stack exchange,提问作者rawat89
相关产品推荐
相关产品推荐

