用于自动生成 Python 导入语句的 Vim 插件(不使用 Rope)

2024-03-10

我以前见过类似的问题here https://stackoverflow.com/questions/3825073/is-there-a-plugin-for-vim-to-auto-import-python-libraries and here https://stackoverflow.com/questions/3838515/auto-include-python-import-statements-in-vim-emacs,但是他们已经 4 岁了,并没有给出符合我要求的答案。

例如,如果我在 Vim 中输入 Python 代码:

os.path.join('my', 'path')
resp = requests.get('http://example.com')
HttpResponse('success')

假设我的 site-packages 文件夹中有第三方模块“requests”和“django”,是否有任何 Vim 插件(不使用 Rope 库)可以自动将相关导入语句添加到 Python文件(对于内置模块和第三方模块,使用import or from根据需要),像这样:

import os
import requests
from django.http import HttpResponse

虽然我传统上会使用古老的 Rope 包,但我一直在用现代替代方案替换 Rope 函数,以避免 .ropeproject 文件夹的开销。然而,我还没有找到自动导入的 Vim 替代品。


我正在使用 python-imports.vim (https://github.com/mgedmin/python-imports.vim https://github.com/mgedmin/python-imports.vim)。与 gutentags 插件结合起来,它几乎是完美的。完美的解决方案将创建所有导入并在名称冲突的情况下神奇地猜测正确的模块,但我怀疑这是可能的。

2022-05-14 更新:另一种方法是使用 Ale (https://github.com/dense-analysis/ale https://github.com/dense-analysis/ale)与pyright(https://github.com/microsoft/pyright https://github.com/microsoft/pyright) 和 :ALEImport 命令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于自动生成 Python 导入语句的 Vim 插件(不使用 Rope) 的相关文章

  • Python 和 Numpy 是 nan 和 set

    我在使用 Python 的 Numpy set 和 NaN 非数字 时遇到了不可预测的行为 gt gt gt set np float64 nan np float64 nan set nan nan gt gt gt set np flo
  • 2d 图像点和 3d 网格之间的交点

    Given 网格 源相机 我有内在和外在参数 图像坐标 2d Output 3D 点 是从相机中心发出的光线穿过图像平面上的 2d 点与网格的交点 我试图找到网格上的 3d 点 This is the process From Multip
  • Python re无限执行

    我正在尝试执行这段代码 import re pattern r w w s re compiled re compile pattern results re compiled search COPRO HORIZON 2000 HOR p
  • 数据框 - 平均列

    我在 pandas 中有以下数据框 Column 1 Column 2 Column3 Column 4 2 2 2 4 1 2 2 3 我正在创建一个数据框 其中包含第 1 列和第 2 列 第 3 列和第 4 列等的平均值 ColumnA
  • python array(10,1) 和 array(10,) 之间的区别

    我正在尝试将 MNIST 数据集加载到数组中 当我使用 X train y train X test y test mnist load data 我得到一个数组 y test 10000 但我希望它的形状为 10000 1 数组 1000
  • 检查 python 中命令行参数的数量

    我是蟒蛇新手 还是把脚弄湿了 我正在尝试做这样的事情 import sys if len sys argv lt 3 or lt len sys argv gt 3 print This script will compare two fi
  • 从 pyspark.sql 中的列表创建数据框

    我完全陷入了有线的境地 现在我有一个清单li li example data map lambda x get labeled prediction w x collect print li type li 输出就像 0 0 59 0 0
  • python 中的 h2o 框架子集

    如何在 python 中对 h2o 框架进行子集化 如果 x 是一个 df 并且 Origin 是一个变量 那么在 pandas 中我们通常可以通过以下方式进行子集化 x x Origin AAF 但使用 h2o 框架会出现以下错误 H2O
  • 在 Mac OSX 上从 Python 3.6 运行 wine 命令

    我正在尝试用 Python 编写一个打开的脚本wine然后发送代码到wine终端打开一个 exe程序 这 exe程序也是命令驱动的 我可以打开wine 但我无法进一步 import shlex subprocess line usr bin
  • 仅当某些值相等时,如何才能将一个文本文件中的值替换为另一个文本文件中的其他值?

    我有一个名为finalscores txt我想创建一个 python 脚本 它将打开它并从两个单独的列中读取值 这是我的finalscores txt file Atom nVa predppm avgppm stdev delta QPr
  • Jupyter 笔记本中未显示绘图图表

    我已经尝试解决这个问题几个小时了 我按照上面的步骤操作情节网站 https plot ly python getting started start plotting online并且图表仍然没有显示在笔记本中 这是我的情节代码 color
  • 时间序列数据预处理 - numpy strides 技巧以节省内存

    我正在预处理一个时间序列数据集 将其形状从二维 数据点 特征 更改为三维 数据点 时间窗口 特征 在这样的视角中 时间窗口 有时也称为回顾 指示作为输入变量来预测下一个时间段的先前时间步长 数据点的数量 换句话说 时间窗口是机器学习算法在对
  • NumPy 相当于 Keras 函数 utils.to_categorical

    我有一个使用 Keras 进行机器学习的 Python 脚本 我正在构建 X 和 Y 它们分别是特征和标签 标签的构建方式如下 def main depth 10 nclass 101 skip True output True video
  • 为正则表达式编写解析器

    即使经过多年的编程 我很羞愧地说我从未真正完全掌握正则表达式 一般来说 当问题需要正则表达式时 我通常可以 在一堆引用语法之后 想出一个合适的正则表达式 但我发现自己越来越频繁地使用这种技术 所以 自学并理解正则表达式properly 我决
  • 使用 selenium 和 python 来提取 javascript 生成的 HTML?萤火虫?

    这里是Python新手 我遇到的是数据收集问题 我在这个网站上 当我用 Firebug 检查我想要的元素时 它显示了包含我需要的信息的源 然而常规源代码 没有 Firebug 不会给我这个信息 这意味着我也无法通过正常的 selenium
  • numpy polyfit 中使用的权重值是多少以及拟合误差是多少

    我正在尝试对 numpy 中的某些数据进行线性拟合 Ex 其中 w 是该值的样本数 即对于点 x 0 y 0 我只有 1 个测量值 该测量值是2 2 但对于这一点 1 1 我有 2 个测量值 值为3 5 x np array 0 1 2 3
  • 寻找完美的正方形

    我有这个Python代码 def sqrt x ans 0 if x gt 0 while ans ans lt x ans ans 1 if ans ans x print x is not a perfect square return
  • 如何使用xlwt设置文本颜色

    我无法找到有关如何设置文本颜色的文档 在 xlwt 中如何完成以下操作 style xlwt XFStyle bold font xlwt Font font bold True style font font background col
  • Python 中的 Unix cat 函数 (cat * > merged.txt)? [复制]

    这个问题在这里已经有答案了 一旦建立了目录 有没有办法在Python中使用Unix中的cat函数或类似的函数 我想将 files 1 3 合并到 merged txt 我通常会在 Unix 中找到该目录 然后运行 cat gt merged
  • 描述符“join”需要“unicode”对象,但收到“str”

    代码改编自here http wiki geany org howtos convert camelcase from foo bar to Foo Bar def lower case underscore to camel case s

随机推荐