Vim: вызов пользовательской функции из заданной строки состояния в vimrc - PullRequest
6 голосов
/ 23 декабря 2009

Я пытаюсь реализовать скрипт vim из книги «Изучение vi и vim» на стр. 202. Следующая функция работает, но когда я пытаюсь использовать statusline для ее вызова, я получаю следующую ошибку:

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

Вот скрипт vim (сейчас он в моем .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()}

Цель последней строки - заставить vim проверять время, когда я делаю редактирование и запускаю пользовательскую функцию. Но я не могу заставить его работать. Какие-либо предложения? Благодарю.

1 Ответ

9 голосов
/ 23 декабря 2009

Вам нужно убрать пробел сразу справа от + =.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...