2017-08-11 59 views
0

这是我的.vimrc配置文件根据书<<learning the vi and vim>>p201-203未知选项:%{SetTimeOfDayColors()}

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

只是删除'+ ='后面的空格 –

回答

1

不得使用空格周围的:set=(或+=)分配:

set statusline+=\ %{SetTimeOfDayColors()} 

你已经正确地转义领先的空间,虽然。在这里,这很容易解决;更复杂的修改,也可以是有用切换到:let代替:

let &statusline .= ' %{SetTimeOfDayColors()}' 

由于:let涉及的变量(和&statusline是一种特殊情况指的是一个选项),你可以有空格这里,也不要需要转义空格,因为右侧是一个表达式(这里是一个带引号的字符串)。