VIM语法着色lua函数名称?

时间:2013-05-14 02:37:56

标签: vim lua syntax-highlighting vim-syntax-highlighting

我正在通过终端(SSH)使用VIM,并希望在VIM中修改我的语法着色设置,以使函数名为黄色以进行Lua编程。不幸的是,我无法弄清楚如何做到这一点。

例如,在下面的代码中 - 我希望我的VIM语法颜色为myFunc黄色

local function myFunc(arg1)
    ...
end

我已经能够通过以下代码弄清楚如何使function变黄:

hi luaFunction ctermfg=Yellow

但是这段代码并没有将单词myFunc染成黄色(坦率地说,我根本不是语法颜色function

问题:我想如何在Lua中对function_name进行语法着色?

3 个答案:

答案 0 :(得分:1)

这个非常天真的实现适用于您的示例:

:hi luaCustomFunction ctermfg=yellow
:syn match luaCustomFunction "\s\+\zs\S\+\ze("

显然非常有限,但至少你得到了一个起点。请阅读:h syntax以获取进一步的帮助。

答案 1 :(得分:1)

匹配函数名称的另一个(更复杂的)正则表达式。

:hi luaCustomFunction ctermfg=yellow
:syn match luaCustomFunction "\(\<function\>\)\@<=\s\+\S\+\s*(\@=" 

这使用后视来匹配单词功能。然后在一个或多个空格之后,它将突出显示任何带有括号的单词作为其后的第一个非空白字符。

这只突出显示功能名称。它不突出括号。

我认为如果你将这些命令放在.vim/after/syntax/lua.vim中,它应该有效。

将它们放入vimrc的问题是,在获取vimrc之后的某个时候,语法高亮文件是来源的,通常第一行是syn clear。 (这会擦除您刚刚设置的自定义语法高亮显示)

答案 2 :(得分:-1)

怎么样:

hi def link luaFunction Function
hi Function ctermfg=Yellow