2017-08-11 2 views
0

Hier ist meine .vimrc Konfigurationsdatei nach dem Buch <<learning the vi and vim>>p201-203.Unbekannte Option: % {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()} 

ein Fehler auf, wenn auf vim test.txt auftreten.

Linie 15: E518: Unbekannte Option: \% {SetTimeOfDayColors()} ENTER drücken oder Typ Befehl

Was ist los mit den Codes hier weiter?

+1

entfernen Sie einfach das Leerzeichen nach dem '+ =' –

Antwort

1

Sie müssen Leerzeichen nicht verwenden um die = (oder +=) Zuordnung von :set:

set statusline+=\ %{SetTimeOfDayColors()} 

Sie haben das führende Leerzeichen richtig entkommen, though. Hier ist das leicht zu beheben; für kompliziertere Änderungen kann es sinnvoll sein zu wechseln :let statt:

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

Als :let beschäftigt sich mit Variablen (und die &statusline ist ein Spezialfall einer Option bezieht), können Sie Leerzeichen hier haben, und dies nicht tun müssen Leerzeichen umgehen, da die rechte Seite ein Ausdruck ist (hier: ein String in Anführungszeichen).

Verwandte Themen