我在Mac OS X 10.7下工作。我在病原体的帮助下得到 javacomplete ,但只完成了JDK类,而不是我创建的类。当我试图全方位地完成我的一个物体时,我得到了“未找到模式”。这真的限于JDK类吗?如果没有,任何人都可以描述他们的配置。
顺便说一句,我已经尝试过创建 ctags ,但它也无法使用javacomplete。但是, ctrl-x ctrl - ] 可以正常创建ctags。答案 0 :(得分:1)
您需要为来源设置类路径。
来自javacomplete文档:
3. Set classpath using the following function: >
javacomplete#AddClassPath('jarfile_or_classes_path')
javacomplete#DelClassPath('jarfile_or_classes_path')
javacomplete#SetClassPath('semicolon_separated_string')
Another two variables will be used if they are existing:
|g:java_classpath| global classpath
|b:classpath| associated with current buffer
我已将以下内容添加到 .vimrc 中以自动完成Android项目:
if filereadable('AndroidManifest.xml')
call javacomplete#SetClassPath('/home/tidbeck/android/sdk/android-sdk-linux_x86/platforms/android-17/android.jar:libs/android-support-v4.jar:bin/classes')
call javacomplete#SetSourcePath('src')
endif
我发现了两件事:
javacomplete#AddClassPath
不支持jar
文件,即使文档是这样说的答案 1 :(得分:0)
我使用了javacomplete插件和supertab,我发现启用方法完成的简单方法是使用另一个名为easytags.vim的插件,在编译类时自动创建标记。它从内存中提供了用户定义的类和方法完成。
答案 2 :(得分:0)
安装vim插件后,您必须将这些行添加到.vimrc
:
" Only do this part when compiled with support for autocommands.
if has("autocmd")
autocmd Filetype java setlocal omnifunc=javacomplete#Complete
endif
我也是,无法使用现有的标签文件(由ctags
创建)。如上所述,一种解决方法是取消设置tags
内的vim选项.vimrc
。但这对我来说不是一个选择。
我只是操纵javacomplete.vim
到#34;忽略"标签文件。
补丁如下:
--- autoload/javacomplete.vim 2011-01-30 21:33:46.000000000 +0100 +++ /home/kndl/.vim/autoload/javacomplete.vim 2015-02-12 20:46:48.227465321 +0100 @@ -2510,7 +2510,8 @@ fu! s:GetClassInfoFromSource(class, filename) let ci = {} if len(tagfiles()) > 0 - let ci = s:DoGetClassInfoFromTags(a:class) + " kndl: Deactivate ctags feature as this does not work. It seems that I am unable to build an accepted tags file. + "let ci = s:DoGetClassInfoFromTags(a:class) endif if empty(ci)