根据书籍.vimrc
<<learning the vi and vim>>
,这是我的p201-203
配置文件。
function SetTimeOfDayColors()
let currentHour = strftime("%H")
if currentHour < 6 + 0
let colorScheme = "darkblue"
elseif currentHour < 12 + 0
let colorScheme = "morning"
elseif currentHour < 18 + 0
let colorScheme = "shine"
else
let colorScheme = "evening"
endif
echo "setting color scheme to " . colorScheme
execute "colorscheme " . colorScheme
endfunction
set statusline += \ %{SetTimeOfDayColors()}
到vim test.txt
时会发生错误。
第15行:E518:未知选项:\%{SetTimeOfDayColors()}按ENTER键 或键入命令继续
这里的代码有什么问题?
答案 0 :(得分:1)
您不得在=
的{{1}}(或+=
)作业周围使用空格:
:set
但是,你已经正确地逃过了领先的空间。在这里,这很容易解决;对于更复杂的修改,切换到set statusline+=\ %{SetTimeOfDayColors()}
代替:会很有用
:let
由于let &statusline .= ' %{SetTimeOfDayColors()}'
处理变量(并且:let
是一个引用选项的特殊情况),你可以在这里有空格,并且不需要转义空格,因为右边是一个表达式(这里:带引号的字符串)。