如何在Vim语法高亮显示中调用函数调用

时间:2015-03-22 07:45:42

标签: vim vim-syntax-highlighting

我是Vim的新手,并且很好奇如何在定义函数后突出显示函数调用。作为example,在SublimeText版本中,totalForArray在定义时以及在第12行调用时都是绿色的。这就是我的Vim看起来像imgur.com/q2WMQ4d,而我'我想知道如何在调用totalForArray时突出显示。

3 个答案:

答案 0 :(得分:3)

Vitor正则表达式匹配的改进。 这将突出显示嵌套函数调用,同时尊重whileiffor等关键字的突出显示...并且还允许函数名称和括号之间的空格 例如myFunction (int argc) { ... }

syn match dFunction "\zs\(\k\w*\)*\s*\ze("
hi link dFunction Function

答案 1 :(得分:2)

Vim的语法分析通常只对函数定义进行着色,因为使用正则表达式很容易找到它。对于函数调用,它必须维护检测到的函数列表。

有些插件可以使用这样的列表扩展语法突出显示,通常取自标记数据库。例如,easytags.vim plugin执行自动标记更新,并可以通过:HighlightTags命令突出显示这些更新。

答案 2 :(得分:1)

作为@Ingo提出的更简单的替代方法,您还可以定义一个语法来匹配任何直接后跟括号的关键字:

syn match jsFunction "\<\k\+\ze("
hi link jsFunction Function

在github中搜索我也能找到vim-javascript插件,它似乎对Vim中包含的默认Javascript语法有各种扩展。特别是,它包含以下语法定义:

syntax match jsFuncCall /\k\+\%(\s*(\)\@=/

这将实现我之前描述的相同语法高亮,但通过使用此插件,您可能也会受益于其中包含的其他改进。