Emacs中的Python代码补全

3 投票
1 回答
2027 浏览
提问于 2025-04-16 22:10

我尝试像这篇文章中所说的那样,用emacs来制作一个Python开发环境,文章链接在这里:http://www.enigmacurry.com/2009/01/21/autocompleteel-python-code-completion-in-emacs/。但是emacs告诉我“自动补全模式没有启用”。请问用emacs写Python代码可以吗?

1 个回答

5

你想在出现这个提示的情况下开启自动补全功能,可以选择以下两种方式:

  • 每次打开 Python 文件时,都可以在你的 .emacs 文件中添加以下内容:

    (add-hook 'python-mode-hook
      (lambda ()
             (auto-complete-mode 1)))
    
  • 或者在打开 任何 文件时,都可以在你的 .emacs 文件中添加以下内容:

    (global-auto-complete-mode t)
    

你提到的问题链接中建议了一种更全面的方法(也就是包含了我建议的第一种添加方式):

(add-hook 'python-mode-hook
      (lambda ()
             (auto-complete-mode 1)
             (set (make-local-variable 'ac-sources)
                  (append ac-sources '(ac-source-rope) '(ac-source-yasnippet)))
             (set (make-local-variable 'ac-find-function) 'ac-python-find)
             (set (make-local-variable 'ac-candidate-function) 'ac-python-candidate)
             (set (make-local-variable 'ac-auto-start) nil)))

这些添加内容是为了在使用代码片段和 Rope 时实现完整的补全功能。

撰写回答