vim java omnicomplete

vim java omnicomplete,java,vim,omnicomplete,Java,Vim,Omnicomplete,我正在尽最大努力按照此处的安装说明进行安装,但我无法使其正常工作,而且看起来有点模糊 这就是我所做的 我确认我有vim 7或更高 我创建了一个$HOME/.vim目录 我将最新版本解压缩到$HOME/.vim中 我在.vimrc中添加了以下两行: 从那以后,我不知道该怎么做才能让它工作。想法?使用:setlocal命令仅设置当前缓冲区的值,并且在.vimrc内没有任何区别。相反,您应该告诉vim为java类型的每个文件设置值。这是如何做到的: if has("autocmd") aut

我正在尽最大努力按照此处的安装说明进行安装,但我无法使其正常工作,而且看起来有点模糊

这就是我所做的

  • 我确认我有vim 7或更高
  • 我创建了一个$HOME/.vim目录
  • 我将最新版本解压缩到$HOME/.vim中
  • 我在.vimrc中添加了以下两行:


从那以后,我不知道该怎么做才能让它工作。想法?

使用
:setlocal
命令仅设置当前缓冲区的值,并且在
.vimrc
内没有任何区别。相反,您应该告诉vim为
java
类型的每个文件设置值。这是如何做到的:

if has("autocmd")
  autocmd Filetype java setlocal omnifunc=javacomplete#Complete
  autocmd Filetype java setlocal completefunc=javacomplete#CompleteParamsInfo
endif
用上面的行替换
.vimrc
中的命令并重新加载(您可以为此运行
:source~/.vimrc


请注意,为此您需要
autocmd
(运行
:echo在vim内部有(“autocmd”)
,必须观察值
1

:setlocal
命令仅设置当前缓冲区的值,并且在
.vimrc
内部没有差异。相反,您应该告诉vim为
java
类型的每个文件设置值。这是如何做到的:

if has("autocmd")
  autocmd Filetype java setlocal omnifunc=javacomplete#Complete
  autocmd Filetype java setlocal completefunc=javacomplete#CompleteParamsInfo
endif
用上面的行替换
.vimrc
中的命令并重新加载(您可以为此运行
:source~/.vimrc


请注意,为此您需要
autocmd
(在vim内部运行
:echo has(“autocmd”)
时必须观察值
1

为什么
:执行“echo has('autocmd')”
:echo has('autocmd')?操作。。。是的,你说得对。我刚尝试了
:has(“autocmd”)
,但没有答案,我认为这是因为
has(string)
函数只在脚本内部工作。我将编辑答案。。谢谢,那么自动完成的转义序列是什么呢?好的,我注意到CTRL-P导致自动完成。老实说,这有点令人失望,因为它似乎只匹配已经在同一个文件中声明的符号。也就是说,如果我执行“private InputStream is=new Bu”,它不知道该做什么,因为我还没有显式导入BufferedInputStream。即使我做java.io.Bu,它仍然是无知的。这是真的吗?
应该做这个工作为什么
:执行“echo has('autocmd')”
而不是
:echo has('autocmd')
?操作。。。是的,你说得对。我刚尝试了
:has(“autocmd”)
,但没有答案,我认为这是因为
has(string)
函数只在脚本内部工作。我将编辑答案。。谢谢,那么自动完成的转义序列是什么呢?好的,我注意到CTRL-P导致自动完成。老实说,这有点令人失望,因为它似乎只匹配已经在同一个文件中声明的符号。也就是说,如果我执行“private InputStream is=new Bu”,它不知道该做什么,因为我还没有显式导入BufferedInputStream。即使我做java.io.Bu,它仍然是无知的。这真的就是这件事吗?
应该能完成这项工作