我正在寻找一个正则表达式,它将选择从第 51 个字符到长度超过 50 个字符的行的末尾的所有文本。
我需要正则表达式不包含该行的前 50 个字符。
这样做的原因是在 gitcommit.vim 语法文件中添加一些内容,以便在摘要超过 50 个字符时使其更加明显。设置ctermbg=red
或类似的东西。
我知道我可能可以ctermbg=red
为整个第一行做一些设置,然后让gitcommitSummary
语法组为前 50 个字符设置背景,但是这个问题引起了我的兴趣,我想知道是否有正则表达式跳过查看该行的前 X 个字符的方法。
我正在玩类似以下的东西,但它只是一个零宽度断言,所以它显然不起作用。有任何想法吗?
# This just highlights all lines exceeding 50 characters
/^\(.\{50\}\)\@=.*$
Run Code Online (Sandbox Code Playgroud)
编辑:刚刚意识到 gitcommit.vim 文件实际上使用“nextgroup”对此进行了语法高亮显示,并且默认情况下将其注释掉。所以我达到了我最初的目标,但我仍然想知道是否可以使用正则表达式来做到这一点。
用于匹配特定列的 Vim 正则表达式原子是\%Nc
其中 N 是列号。看
:help /\%c
Run Code Online (Sandbox Code Playgroud)
要匹配虚拟列号,原子是\%Nv
。看
:help /\%v
Run Code Online (Sandbox Code Playgroud)
要搜索第 50 列之后的任何内容,您可以使用
/\%>50v
Run Code Online (Sandbox Code Playgroud)
在第>
50 列之后的任何列匹配的方法。您也可以在 :match 命令中使用该正则表达式,如下所示:
:match ErrorMsg /\%>50v/
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2379 次 |
最近记录: |