在设置时可以使用表达式(例如函数调用)代替文字值的两种方式中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>:
没有帮助。