gpt4 book ai didi

vim - 是否可以让 vim 在我的光标当前所在的括号范围内加下划线?

转载 作者:行者123 更新时间:2023-12-04 21:58:36 25 4
gpt4 key购买 nike

我知道 vim 有一个彩虹插件,它可以为左括号和右括号着色,我知道 vim 可以突出显示匹配的括号。我希望 vim 在我当前所在的括号范围内为所有内容加下划线。

例如:让|为当前光标位置,则:

(a|bc (de fg))

会强调一切。

(abc (de |fg))

只会在 (de fg) 下划线。

这可能吗?

最佳答案

这场比赛似乎很顺利:

syn match Foo /([^(]*\%#.*)/
hi link Foo Underlined

你可以把它放在你的 ~/.vimrc 或特定语言的语法文件中。

一步一步:

syn match Foo - 根据正则表达式匹配语法组并将其命名为 Foo

/([^(]* - 匹配 ( 后跟不限数量的任何字符或 0 除 (

\%# - 匹配当前光标位置

.* - 匹配无限量或 0 个任意字符

) - 匹配 )

hi link Foo Underlined - 将 Foo 组链接到 Underlined

应该注意的是,这是一个不完美的解决方案,因为正则表达式对于嵌套子结构来说并不理想。 Rainbow Parenthesis通过添加多达 13 级递归来实现这一点,但它不提供无限递归。您可以使用我提供的正则表达式示例修改其 13 级递归,以完成任意数量的递归。我不确定可能对速度产生的影响。

关于vim - 是否可以让 vim 在我的光标当前所在的括号范围内加下划线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12161508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com