当我启动 vim 时,我打印出以下错误:
$ vim -V9foo.log
Error detected while processing function <SNR>14_DependenciesValid:
line 12:
Traceback (most recent call last):
File "<string>", line 6, in <module>
AttributeError: 'module' object has no attribute 'vars'
Press ENTER or type command to continue
在这个网站上,我发现了一些使用 -V9 来打印 vim 所做的一切的建议。但是,当我这样做时,我看不到失败!
我还可以使用 -V9foo.log 将它正在执行的所有操作打印到日志文件 (foo.log) 当我这样做时,启动工作都打印在那里,但错误会打印到终端。因此,我的猜测是 Python 插件运行程序不知道 vim -V 输出目标,或者 python 运行时错误直接打印到 stderr。
不幸的是,Python 错误非常无用。我在我的任何 vim 插件中都找不到名为 DependenciesValid 的函数,其余的错误都是“来自某个字符串,使用某个模块,找到它的位置很有趣!”
我将 Vundle 用于插件,我这样做的唯一原因是我想使用 ensime 进行编辑器内的 Scala 浏览。
注释掉 ensime/ensime-vim 会使错误消失,它会定位特定的包,但不会让我更接近包中错误实际发生的位置或原因。
这是我的.vimrc:
set nocompatible
filetype off
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" Plugin 'jewes/Conque-Shell'
Plugin 'ensime/ensime-vim'
Plugin 'derekwyatt/vim-scala'
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
" syntastic
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
" My Stuff
set expandtab
set hidden
set ts=4
set ignorecase
set sw=4
我在 ubuntu 12.04 LTS 上运行(不,目前无法升级。)
$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled May 4 2012 04:24:26)
Included patches: 1-429
$ uname -a
Linux (hostname) 3.19.0-32-generic #37~14.04.1 SMP Fri Nov 6 00:01:52 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux