ropevim可以实现在vim中自动完成,自动import等功能。
参考: http://rope.sourceforge.net/ropevim.html
安装步骤如下:
$ mkdir /home/liwen/install/rope
$ cd /home/liwen/install/rope
$ hg clone http://bitbucket.org/agr/rope/
$ cd rope
$ python setup.py install
$ cd ..
$ hg clone http://bitbucket.org/agr/ropevim/
$ cd ropevim
$ hg clone http://bitbucket.org/agr/ropemode/
$ mv ropemode/ropemode/* ropemode/
$ python setup.py install
在 .vimrc 中添加下面的代码:
let $PYTHONPATH .= ":/home/liwen/install/rope/rope:/home/liwen/install/rope/ropevim"
source /home/liwen/install/rope/ropevim/ropevim.vim
let ropevim_codeassist_maxfixes=10
let ropevim_guess_project=1
let ropevim_vim_completion=1
let ropevim_enable_autoimport=1
let ropevim_extended_complete=1
function! CustomCodeAssistInsertMode()
call RopeCodeAssistInsertMode()
if pumvisible()
return "\<C-L>\<Down>"
else
return ''
endif
endfunction
function! TabWrapperComplete()
let cursyn = synID(line('.'), col('.') - 1, 1)
if pumvisible()
return "\<C-Y>"
endif
if strpart(getline('.'), 0, col('.')-1) =~ '^\s*$' || cursyn != 0
return "\<Tab>"
else
return "\<C-R>=CustomCodeAssistInsertMode()\<CR>"
endif
endfunction
inoremap <buffer><silent><expr> <Tab> TabWrapperComplete()
自动完成直接可以用,但 RopeRename 不工作,可能是工程太大,分起来比较费劲。还不错。
PS: hg 是 mercurial(水银)
Hi. With ropevim and your method, after I type I get one unnecessary tab:
mymodel.object
Any idea want I’m doing wrong? Thanks.
I don’t know how exactly you type, but on me only when I press ‘tab’ it will give some prompt, or nothing will happen.