2017-08-11 6 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? :set

あなたが =(または +=)の周りに空白を使用してはならない
+1

'+ ='の後のスペースを削除するだけです。 –

答えて

1

割り当て:

set statusline+=\ %{SetTimeOfDayColors()} 

あなたはしかし、先頭のスペースを適切にエスケープしました。ここでは、これは簡単に修正できます。より複雑な変更のために、それは代わりに:letに切り替えるすることが有用であり得る:

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

:letのような変数を扱う(および&statuslineはオプションを参照する特殊なケースです)、あなたはここに空白があり、ない行うことができます右辺が式(ここでは引用符で囲まれた文字列)であるため、空白をエスケープする必要があります。

関連する問題