1

ターミナル (SSH) 経由で VIM を使用していますが、VIM で構文の色分け設定を変更して、Lua プログラミング用に function_name を黄色にしたいと考えています。残念ながら、その方法がわかりません。

たとえば、以下のコードでは - I want my VIM to syntax color myFuncyellow

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 "\(\<function\>\)\@<=\s\+\S\+\s*(\@=" 

これは、後読みを使用して単語 function に一致させます。次に、1 つ以上のスペースの後に、その後の最初の非空白文字として括弧を持つ単語が強調表示されます。

これは関数名のみを強調表示します。括弧は強調表示されません。

これらのコマンドを入れればうまくいくと思います.vim/after/syntax/lua.vim

それらをvimrcに入れる際の問題は、vimrcがソースされた後、構文強調表示ファイルがソースされ、通常、最初の行がsyn clear. (これにより、設定したカスタム構文の強調表示が消去されます)

于 2013-05-14T14:09:10.627 に答える
1

この非常に単純な実装は、サンプルで機能します。

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

明らかに非常に限られていますが、少なくとも出発点は得られます。詳細については、お読みください:h syntax

于 2013-05-14T05:58:51.973 に答える
-1

どうですか:

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