1

我正在通过终端 (SSH) 使用 VIM,并希望在 VIM 中修改我的语法着色设置,以使函数名称为黄色以用于 Lua 编程。不幸的是,我不知道该怎么做。

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

local function myFunc(arg1)
    ...
end

通过使用下面的代码,我已经能够弄清楚如何制作function黄色:

hi luaFunction ctermfg=Yellow

但是这段代码没有把这个词myFunc染成黄色(坦率地说,我宁愿根本不使用语法颜色function

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

4

3 回答 3

1

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

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

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

于 2013-05-14T05:58:51.973 回答
1

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

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

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

这仅突出显示函数名称。它没有突出显示括号。

我认为,如果您将这些命令放入其中,.vim/after/syntax/lua.vim它应该可以工作。

将它们放入您的 vimrc 的问题在于,在获得 vimrc 后的某个时间,语法高亮文件被获得,通常第一行是syn clear. (这会擦除您刚刚设置的自定义语法突出显示)

于 2013-05-14T14:09:10.627 回答
-1

How about:

hi def link luaFunction Function
hi Function ctermfg=Yellow
于 2013-05-14T03:19:41.983 回答