2017-08-11 57 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是一種特殊情況指的是一個選項),你可以有空格這裏,也不要需要轉義空格,因爲右側是一個表達式(這裏是一個帶引號的字符串)。