使用 emacs-jedi 自动导入模块

问题描述 投票:0回答:3

使用 Ropemacs,你可以做这样的事情:

M-x rope-auto-import

这会分析代码(我认为)并导入缺少的模块,例如,如果我写:

datetime.now()

它应该通过添加此行来为我进行导入:

from datetime import datetime

(它总是使用

from ... import ...
形式)

emacs-jedi中有类似的功能吗?

python emacs autocomplete emacs-jedi python-jedi
3个回答
3
投票

Jedi 尚不支持自动导入。 (因此显然 emacs-jedi 两者都不做)

还有讨论正在实施重构(包括自动导入)。不过,可能还需要一年左右的时间。


1
投票

如果我们忽略jedi部分并关注emacs部分,您可以在安装autoimport后使用以下命令。

(defun my-python-autoimports ()
  (interactive)
  (save-buffer)
  (shell-command (s-concat "autoimport " (shell-quote-argument (buffer-file-name))))
  (revert-buffer t t))

0
投票

为了将来参考,

M-x python-add-import
已添加到 Emacs 29 中。

这无需绝地武士、绳索或 lsp 即可工作。

使用前缀参数,它将尝试在该点找到符号的导入。

© www.soinside.com 2019 - 2024. All rights reserved.