設定時にリテラル値の代わりに関数呼び出しなどの式を使用できる2つの方法のうちstatusline
、どちらも静的関数を許可していないようです。
set statusline=%{s:MyFunc()}
set statusline=%!s:MyFunc()
どちらも次のエラー ペアを生成します。
E120: Using <SID> not in a script context: <SID>:MyFunc
E15: Invalid expression: <SID>:MyFunc()
設定しようとしてs:MyFunc()
いるのと同じファイルで定義しましたstatusline
。
関数をグローバルにすると(ファイル内のすべての場所にs:MyFunc
置き換えられMyFunc
ます)、エラーはなく、statusline
適切に設定されます。したがって、この質問。
に置き換えs:
て<SID>:
も役に立たなかったことに注意してください。