使用emacs-jedi自动导入模块

8 投票
2 回答
1896 浏览
提问于 2025-04-18 09:19

使用ropemacs,你可以做到类似这样的事情:

M-x rope-auto-import

这个功能会分析代码(我想是这样),并自动导入缺失的模块。例如,如果我写:

datetime.now()

它应该会为我添加这一行:

from datetime import datetime

(它总是使用 from ... import ... 这种形式)

在emacs-jedi中有没有类似的功能呢?

2 个回答

1

如果我们不考虑“绝地”那部分,而是关注“emacs”这部分,你可以在安装了 autoimport 之后使用下面的命令。

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

Jedi 目前还不支持自动导入功能。(所以 emacs-jedi 也不支持这个功能)

现在有一些讨论在进行中,目的是要实现一些重构功能(这其中就包括自动导入)。不过,这个可能还需要大约一年左右的时间才能完成。

撰写回答