2009-12-23 4 views
6

Je suis en train de mettre en œuvre le script vim de l'apprentissage du livre vi et vim à la page 202. La fonction suivante fonctionne, mais lorsque je tente d'utiliser statusline pour appeler I l'erreur suivante:Vim: Appel d'une fonction personnalisée de jeu statusline dans vimrc

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

Voici le script vim (il est actuellement dans mon .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()} 

le but de la dernière ligne est d'avoir vim vérifier le temps chaque fois que je fais un éditer et Exécutez la fonction personnalisée. Mais je ne peux pas le faire fonctionner. Aucune suggestion? Merci.

Répondre

9

Vous devez supprimer l'espace immédiatement à droite du + =.

+0

Parfait - merci! – Rob

Questions connexes