我在Vim脚本中使用内置函数 search()来查找某些单词,例如" class"。
我想知道这个词是否在评论中。
我使用的是C ++语言。
有什么办法吗?
由于
答案 0 :(得分:1)
将光标移至search()
结果,或使用searchpos()
。然后,对synID + synIDattr
使用当前/结果坐标comment
。
例如,如果您未在n
中使用search()
标记,
:let is_in_a_comment = synIDattr(synID(line('.'),col('.')-1,1),'name') =~? 'comment'
因此我的lh#syntax#is_a_comment_at(lin,col)
and lh#syntax#is_a_comment(mark)
functions.
注意,在C ++中,您可能还需要匹配doxygen。
PS:关于这个主题,我最近想出了一个实验:lh#syntax#getline_without()
,它返回getline()
结果,但剥离了我们不感兴趣的语法元素。分析文件可能很有用,但不要跳到其中的各个位置。