是否有用于 vim 的插件来自动导入 python 库? [关闭]

Posted

技术标签:

【中文标题】是否有用于 vim 的插件来自动导入 python 库? [关闭]【英文标题】:Is there a plugin for vim to auto-import python libraries? [closed] 【发布时间】:2011-04-19 00:18:00 【问题描述】:

在 Eclipse 中,您可以按 Ctrl+Shift+o 自动导入您在代码中引用的所有库。有没有类似的vim插件与python有这个功能?

【问题讨论】:

感谢 Eclipse 提示,不知道这个。 您是希望将库作为对象进行操作还是只是访问/读取文件?对于访问,有 ctags,如果这是您正在寻找的,我还可以为 python 发布一个 getfile 'gf' 增强脚本。 @michael:我的意思是,如果我输入“itertools.cycle(...)”,它应该查看文件顶部并自动添加“import itertools”,如果不是已经存在。 它还会删除未使用的导入。它也可能按 pep8 顺序排列它们。似乎很可能通过 pyflakes 来实现。 啊,我在某个阶段也在寻找一个,但找不到任何东西。我最终根据您在vim.org/scripts/script.php?script_id=2780 的标签文件一起破解了一个。它适用于不处理内置函数的 3rd 方源库。我打算开始为内置函数编写一个标签脚本来处理这个问题。 【参考方案1】:

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>

【讨论】:

嗨,我发现自动导入不适用于 django。例如,如果我在光标位于 HttpResponse 上时键入 ,ropevim 将无法找到名称并导入它。 我无法使用 macvim 让ropevim 工作【参考方案2】:

您可以安装一个名为mr.igor 的命令行工具。在 pypi 页面上有将其连接到 vim 的说明:

http://pypi.python.org/pypi/mr.igor

【讨论】:

看起来这在 Python 3 中不再适用。【参考方案3】:

我将https://github.com/mgedmin/python-imports.vim 与gutentag 一起使用。对我来说足够好(总比没有好)。

【讨论】:

以上是关于是否有用于 vim 的插件来自动导入 python 库? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu下vim中Python自动补全插件YouComplete

用于“自动关闭”括号的 Vim 插件?

IE 11 有vim插件吗?

是否有 Eclipse 插件来构建用于分发的 python 可执行文件?

Vim插件Jedi-Vim折腾记

Linux Vim中自动补全Python插件:Pydiction