VimScript中的“未封闭的表达式序列”错误

gre*_*uan 2 vim macvim

为了设置我,我有以下几点statusline

set stl=%<\ [Buf:\ %n]%m\ %f\ [
set stl+=%{empty(&filetype) ? \"" : \"," . toupper(&filetype) . \", \"}
set stl+=%{(&fenc!=''?&fenc:&enc)}]

set stl+=%=[0x\%02.2B]\ [Line:\ %04l/%04L\ \|\ Col:\ %c%V]\ (%P)
Run Code Online (Sandbox Code Playgroud)

我个人认为它没有任何问题,但是它总是给我以下错误:
E540: Unclosed expression sequence: stl+=%{empty(&filetype)

有人知道这个错误是什么意思吗?我一直在努力解决它,但是我只是不明白它的含义。

感谢你的帮助。:)

Ing*_*kat 5

使用时:set,值中的所有空格也必须使用反斜杠进行转义。因此,建议消除那里的任何不必要的空格,或改用空格:let &stl = '...'(仅包含的'字符必须加倍)。