在here和here之前,我见过类似的问题,但是它们已经存在4年了,没有得到符合我要求的答案。
如果我在Vim中输入Python代码,例如:
os.path.join('my', 'path')
resp = requests.get('http://example.com')
HttpResponse('success')
假设我的site-packages文件夹中有第三方模块'requests'和'django',是否有Vim插件--它不使用Rope库--可以自动将相关的import语句添加到Python文件中(对于内置模块和第三方模块,根据需要使用import
或from
),如下所示:
import os
import requests
from django.http import HttpResponse
虽然我传统上会使用古老的Rope包,但我一直在用现代的替代品替换Rope函数,以避免.ropeproject文件夹的开销。然而,我还没有找到一个Vim替代品来自动导入。
3条答案
按热度按时间dtcbnfnu1#
我正在使用python-imports.vim(https://github.com/mgedmin/python-imports.vim)。合并gutentags插件,它几乎是完美的。完美的解决方案将创建所有的导入,并神奇地猜测正确的模块,以防名称冲突,但我怀疑这是可能的。
2022年5月14日更新:另一种方法是使用Ale(https://github.com/dense-analysis/ale)与pyright(https://github.com/microsoft/pyright)和:ALEImport命令。
x7rlezfr2#
看一看vimpy。从它的描述来看,它做了你想要的。
请注意,它需要pyflakes。
9rbhqvlz3#
很晚才到党但既然这个问题存在,我不妨张贴一个新的答案。
我使用
coc-python
来处理这种性质的所有事情。它就像魔术一样:
唯一需要注意的是,您必须按
Ctrl-y
才能接受自动导入建议。确保在插入模式下没有将
Ctrl-y
Map到任何其他内容(例如,一个名为 emmet 的通用插件会重新Map这种组合)。