VIm omni完全不适用于python变量?

时间:2014-04-03 08:23:21

标签: python vim editor omnicomplete

我想使用omnicomplete而不是自己编写每个变量。很快,我必须处理一个混乱的项目,所以我需要一些帮助才能找到变量......我试图使用omnicomplete,但它不起作用:

您将在下面找到一些软件信息:

VIM:7.3.429-2ubuntu2.1 exuberant-ctag:5.9

我的.vimrc:

set background=dark
set expandtab
set tabstop=4
set ai

au BufWinEnter * let w:m1=matchadd('ErrorMsg', '\%>80v.\+', -1)
highlight Space ctermbg=darkblue guibg=darkblue
highlight Tab ctermbg=darkgray guibg=darkgray
au BufWinEnter * let w:m2=matchadd('Tab', '\t', -1)
au BufWinEnter * let w:m3=matchadd('Space', '\s\+$\| \+\ze\t', -1)

map <F4> :TlistToggle<cr>
filetype plugin on
set omnifunc=syntaxcomplete#Complete

当我打开文件时,我输入:

:set tags = / mypath / myfile

但是当我想要自动完成时,它不起作用:

自我。  

它只显示函数名称而没有变量? 当我使用TagLisst时,我也只看到了函数。如果我读取我的标签文件,我可以找到我的变量..

那么如果我想使用omnicomplete在python脚本中完成变量,我该怎么做?

谢谢。 :)

2 个答案:

答案 0 :(得分:0)

删除omnifunc行就足够了。它明确地用一个功能较差的python omnifunc替换了你想要的默认python omnifunc。

答案 1 :(得分:0)

嗯,我想我对Vi和旺盛的ctags有更深层次的问题。

您将在下面找到我的新vimrc:

set background=dark
set ai


let Tlist_WinWidth = 50
highlight Space ctermbg=darkblue guibg=darkblue
highlight Tab ctermbg=darkgray guibg=darkgray
au BufWinEnter * let w:m2=matchadd('Tab', '\t', -1)
au BufWinEnter * let w:m3=matchadd('Space', '\s\+$\| \+\ze\t', -1)

map <F4> :TlistToggle<cr>
map! <F3> <C-V><Tab>

filetype plugin indent on


set completeopt=longest,menuone

当我这样做时:

:set tags=/mypath/myfile

然后,如果我尝试输入:

:ts

我明白了:

E73:标签堆空

或:TlistShowTag =&gt;没有任何反应

我不明白哪里出错了? Vim配置?标记列表?旺盛的标签? :/

为什么我的标签文件中有变量namy但标签列表中没有? :(