2009-12-23 12 views
6

Sto provando a implementare lo script vim dal libro Learning vi and vim a pagina 202. La seguente funzione funziona, ma quando provo a usare statusline per chiamarla I il seguente errore:Vim: chiamata di una funzione personalizzata dalla riga di stato impostata in vimrc

$ vim 
$ Error detected while processing /Users/me/.vimrc: 
E518: Unknown option: \ %{SetTimeOfDayColors()} 

Ecco lo script Vim (è attualmente nel mio Vimrc)

function SetTimeOfDayColors() 
    let currentHour = strftime("%H") 
    echo "currentHour is " . currentHour 
    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=%<%f\ %h%m%r%=%-20.(line=%l,col=%c%V,totlin=%L%)\%h%m%r%=%-40(,bytval=0x%B,%n%Y%)\ %{strftime(\"%c\")}%=0x%B\ %P 
set statusline += \ %{SetTimeOfDayColors()} 

lo scopo dell'ultima riga è quella di avere vim controllare il tempo ogni volta che faccio una modifica e eseguire la funzione personalizzata. Ma non riesco a farlo funzionare. Eventuali suggerimenti? Grazie.

risposta

9

È necessario rimuovere lo spazio immediatamente a destra di + =.

+0

Perfetto - grazie! – Rob

Problemi correlati