0

我正在使用rainbow_parentheses插件,我希望它在 VIM 启动时启动。目前,在启动时,没有任何变化;当启动后手动调用 Load_Rainbow 时,它可以工作。

相关的vimrc部分如下:

" Rainbow Parentheses options {
    function! Config_Rainbow()
        call rainbow_parentheses#load(0)
        call rainbow_parentheses#load(1)
        call rainbow_parentheses#load(2)
    endfunction

    function! Load_Rainbow()
        call rainbow_parentheses#activate()
    endfunction

    augroup TastetheRainbow
        autocmd!
        autocmd Syntax * call Config_Rainbow()
        autocmd VimEnter * call Load_Rainbow()
    augroup END
" }
4

1 回答 1

0

正如上面 FDinoff 所检查的那样,这个问题似乎是特定于平台的:Win 64bit,正如使用来自此处此处的二进制文件进行测试的那样。在 32 位 gVim 中测试这些设置时证实了这一点。我仍然不确定确切的根本原因,但是我发现了一种解决方法。我认为问题在于 Syntax 和 VimEnter autocmd 事件的顺序,因此解决方案是在 Syntax 事件期间设置 VimEnter autocmd。

vimrc:

" Rainbow Parentheses options {
    function! Config_Rainbow()
        call rainbow_parentheses#load(0) " Load Round brackets
        call rainbow_parentheses#load(1) " Load Square brackets
        call rainbow_parentheses#load(2) " Load Braces
        autocmd! TastetheRainbow VimEnter * call Load_Rainbow() " 64bit Hack - Set VimEnter after syntax load
    endfunction

    function! Load_Rainbow()
        call rainbow_parentheses#activate()
    endfunction

    augroup TastetheRainbow
        autocmd!
        autocmd Syntax * call Config_Rainbow() " Load rainbow_parentheses on syntax load
        autocmd VimEnter * call Load_Rainbow()
    augroup END

    " rainbow_parentheses toggle
    nnoremap <silent> <Leader>t :call rainbow_parentheses#toggle()<CR>
" }
于 2013-07-01T06:28:04.860 回答