我正在通过终端(SSH)使用VIM,并希望在VIM中修改我的语法着色设置,以使函数名为黄色以进行Lua编程。不幸的是,我无法弄清楚如何做到这一点。
例如,在下面的代码中 - 我希望我的VIM语法颜色为myFunc
黄色
local function myFunc(arg1)
...
end
我已经能够通过以下代码弄清楚如何使function
变黄:
hi luaFunction ctermfg=Yellow
但是这段代码并没有将单词myFunc
染成黄色(坦率地说,我根本不是语法颜色function
)
问题:我想如何在Lua中对function_name进行语法着色?
答案 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