作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个非常简单的 Vim 语法文件用于个人笔记。我想突出显示人们的名字,我选择了类似 Twitter 的语法 @jonathan
.
我试过:
syntax match notesPerson "\<@\S\+"
@
开头的词并且至少有一个非空白字符。问题是
@
似乎是 Vim 正则表达式中的一个特殊字符。
\@
并用括号括起来
[@]
,通常的技巧,但这不起作用。我可以尝试类似
(^|\s)
(行或空格的开头)但这正是 word-boundary 试图解决的问题。
最佳答案
@
仅当您启用“非常神奇”时才为特殊字符
模式通过 \v
在该模式之前的某个位置 @
.
你还有一个问题:@
不开始一个新词。 \<
是
不仅仅是像 perl/PCRE 那样的“词边界”\b
,但是“左词
边界”(帮助:“词的开头”)意思是 \<
必须是
后跟一些关键字字符。如 @
通常不是关键字
字符、图案 \<@
永远不会匹配。 (即使它就像\b
,它将匹配像 abc@def
这样的结构这绝对不是
由于上述原因,您想要什么。)
您应该使用 \k\@<!@\k\S*
相反:\k\@<!
确保 @
前面没有任何关键字字符,\k\S*
确保名称的第一个字符是关键字(您也可以使用 @\<\S\+
)。
还有另一种解决方案:包括 @
进入 'iskeyword'
选项并保留正则表达式:
:setlocal iskeyword+=@-@
:help 'isfname'
解释为什么
@-@
在这里使用。
'iskeyword'
选项具有完全相同的语法,并且将,
关于regex - 如何在 Vim 语法中突出显示以 ‘@’ 开头的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13940823/
有没有一种方法可以“标记”对象的属性,使它们在反射中“突出”? 例如: class A { int aa, b; string s1, s2; public int AA
我是一名优秀的程序员,十分优秀!