【问题标题】:Is there a plugin for vim to auto-import python libraries? [closed]是否有用于 vim 的插件来自动导入 python 库? [关闭]
【发布时间】: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 方源库。我打算开始为内置函数编写一个标签脚本来处理这个问题。

标签: python eclipse vim ide text-editor


【解决方案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 一起使用。对我来说足够好(总比没有好)。

【讨论】:

    猜你喜欢
    • 2012-02-16
    • 2012-01-09
    • 2015-06-17
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    相关资源
    最近更新 更多