有没有适用于vim的插件可以自动导入Python库?

17
在eclipse中,您可以使用Ctrl+Shift+o快捷键来自动导入您在代码中引用的所有库。是否有类似于vim的插件,可以在Python中具有此功能?

1
谢谢你的Eclipse提示,我之前不知道这个。 - Rafe Kettler
@michael:我的意思是,如果我输入“itertools.cycle(...)”,它应该查看文件顶部,并在没有导入“itertools”的情况下自动添加它。 - Daenyth
啊,我之前也在找这个东西,但是没找到。最后我根据你的标签文件(http://www.vim.org/scripts/script.php?script_id=2780)自己拼凑了一个。它可以很好地处理第三方源代码库,但无法处理内置函数。我打算写一个标签脚本来处理内置函数。 - michael
@michael:嗯,内置函数是最有用的一些。肯定有简单的方法... - Daenyth
显示剩余2条评论
3个回答

8

有一个名为ropevim的工具。它也可以在pypi上下载。

自动导入(添加缺失的导入)和组织导入(重新排序导入)功能效果很好,但有时会有点侵入性(它会在您的项目中创建一个.ropeproject文件夹)。Rope代码补全也相当不错,所以我使用标准代码补全并使用tab键,当不足够时,我使用ctrl-space来使用ropevim自动补全。

以下是我的一些ropevim映射:

" Rope AutoImport and OrganizeImport
nnoremap <C-S-o> :RopeOrganizeImports<CR>0<CR><CR>
nnoremap <C-S-i> :RopeAutoImport<CR>

" Rope AutoComplete
let ropevim_vim_completion = 1
let ropevim_extended_complete = 1
let g:ropevim_autoimport_modules = ["os.*","traceback","django.*","lxml.etree","lxml.*"]
imap <c-space> <C-R>=RopeCodeAssistInsertMode()<CR>

" Rope Menu
menu Python.Create\ Package :RopeCreatePackage<CR>
menu Python.Create\ Module :RopeCreateModule<CR>

1
嗨,我发现对于Django,自动导入无法工作。例如,如果我在HttpResponse上使用<C-S-i>,ropevim将无法找到名称并导入它。 - faceclean
我无法在MacVim上使用Ropevim。 - user798719

1

看起来在Python 3中这个不再起作用了。 - user202729

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接