如何在Vim中高亮一行中的前10个单词(或任意数量单词)
在Vim中高亮一行的前N个单词(以10个为例)
要实现高亮一行的前10个单词,你可以基于现有正则扩展,核心是通过重复匹配单元覆盖多个单词。
匹配前10个单词的正则表达式:
/^\s*\(\w\+\s*\)\{10\}
正则拆解:
^\s*:匹配行首任意空白字符(空格、制表符都算),避免行首空白干扰单词计数\(\w\+\s*\):作为重复单元,匹配一个完整单词(\w\+)加上单词后的任意空白(\s*,包含单词间空格或行尾空白)\{10\}:指定前面的重复单元执行10次,精准匹配前10个单词及它们之间的空白
自定义数量调整
如果要高亮任意数量的单词,把\{10\}里的数字改成目标N即可:
- 高亮前5个单词:
/^\s*\(\w\+\s*\)\{5\} - 高亮前3个单词:
/^\s*\(\w\+\s*\)\{3\}
实际应用高亮
在Vim中用:match命令直接应用规则,比如用默认的Search高亮组(搜索时的高亮样式):
:match Search /^\s*\(\w\+\s*\)\{10\}
取消高亮执行:match clear即可。
内容的提问来源于stack exchange,提问作者ThG
相关产品推荐
相关产品推荐

