未知选项:\%{SetTimeOfDayColors()}

时间:2017-08-11 06:01:44

标签: function vim color-scheme

根据书籍.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键   或键入命令继续

这里的代码有什么问题?

1 个答案:

答案 0 :(得分:1)

您不得在=的{​​{1}}(或+=)作业周围使用空格:

:set
但是,你已经正确地逃过了领先的空间。在这里,这很容易解决;对于更复杂的修改,切换到set statusline+=\ %{SetTimeOfDayColors()} 代替:

会很有用
:let

由于let &statusline .= ' %{SetTimeOfDayColors()}' 处理变量(并且:let是一个引用选项的特殊情况),你可以在这里有空格,并且不需要转义空格,因为右边是一个表达式(这里:带引号的字符串)。

相关问题