5

我在 Mac OS X 10.7 下工作。我在 Pathogen 的帮助下得到了javacomplete它只完成了 JDK 类,而不是我创建的类。当尝试全方位完成我的一个对象时,我得到“找不到模式”。这真的仅限于 JDK 类吗?如果没有,任何人都可以描述他们的配置。

顺便说一句,我尝试过创建ctags,但它也不适用于 javacomplete。但是,ctrl-x ctrl-]与创建的 ctags 一起工作得很好。

4

3 回答 3

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#AddClassPathjar即使文档这么说也不支持文件
  • 我必须删除我的标签文件才能完成工作
于 2013-03-21T15:03:57.303 回答
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“忽略”标签文件。

补丁如下:

--- 自动加载/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 @@
 呸!s:GetClassInfoFromSource(类,文件名)
   让 ci = {}
   如果 len(tagfiles()) > 0
- 让 ci = s:DoGetClassInfoFromTags(a:class)
+ " kndl: 停用 ctags 功能,因为这不起作用。看来我无法构建可接受的标签文件。
+ "让 ci = s:DoGetClassInfoFromTags(a:class)
   万一

   如果为空(ci)
于 2015-02-12T21:21:45.457 回答
0

我使用了 javacomplete 插件和 supertab,我发现启用方法完成的最简单方法是使用另一个名为easytags.vim的插件,它会在您编译类时自动创建标签。从内存中它确实提供了用户定义的类和方法完成。

于 2012-08-24T13:00:29.737 回答