我正在尝试从第202页的学习vi和vim这本书中实现vim脚本。以下函数有效,但是当我尝试使用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在我进行编辑并运行自定义函数时检查时间。但是我无法使它正常工作。有什么建议么?谢谢。

最佳答案

您需要立即删除+ =右侧的空格。

关于vim - Vim:从vimrc中的set statusline调用自定义函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1953029/

10-13 07:20