【问题标题】:How to use Emacs with Python如何在 Python 中使用 Emacs
【发布时间】:2010-12-24 04:33:23
【问题描述】:

我是 emacs 新手,我想使用 emacs 进行 python 开发。我正在使用 Ubuntu 9.10。我对让 emacs 与 python 一起工作感到沮丧。我使用 GNU Emacs 23.1.50.1(x86_64-pc-linux-gnu,GTK+ 版本 2.18.0)。

这就是我所做的。 *

Emacs 带有 python 模式,但令人困惑的是有两种模式,一种是 python-mode.el,另一种是 python.el。我使用emacs 23,所以我的是python.el(我认为)。我也需要python模式吗?当我按下 M-Tab 时,代码完成不起作用,而不是窗口管理器起作用。我试过 Esc-Tab 但它说 "No match" 。如何启用代码完成?

之后我安装了ropemacs

sudo aptitude install python-ropemacs

然后我在 ~/.emacs 创建了 .emacs 文件 我在 .emacs 文件中添加了以下内容

(require 'pymacs)   
(pymacs-load "ropemacs" "rope-")   
(setq ropemacs-enable-autoimport t)  

然后当我点击 M-/ (Alt-/) 时,当我从菜单 Rope->Code assistant 中点击时它不起作用,它会打开一个文件对话框以选择根项目文件夹。我选择当前文件夹,其中有一些 python 代码。当我再次尝试菜单中的代码辅助时,它说 “x 的完成:”只是空集。如何让emacs python代码补全工作?

然后我将anything.el、anything-config、anything-match-plugin 下载到 ~/.emacs.d 文件夹然后我在 .emacs 文件中添加了以下几行

(require 'anything-config)   
(require 'anything-match-plugin)   
(global-set-key "\C-ca" 'anything)   
(global-set-key "\C-ce" 'anything-for-files)   

猜猜它不起作用。我再次尝试“M-x 任何东西”我得到不匹配。(我猜可能我的组合 C-ca (首先 control-a 然后 e )可能会起作用,它说它没有定义)。你能用清晰的解释(一步一步地)向像我这样的假人解释python的代码完成吗?谢谢。 编辑:我可以通过链接将 emacs 与 python 一起使用。谢谢大家的回答

【问题讨论】:

    标签: python emacs


    【解决方案1】:

    我没有尝试过任何东西,而且我对绳索的运气并不好(巨大的源代码树导致我的 emacs 挂在任何文件保存上)。相反,我发现默认完成对于我的目的来说已经足够了。

    默认的完成键绑定是M-/。运行 dabbrev-expand 将当前单词扩展为“这是前缀的最近的、前面的单词”。它并不完美:它不会解析类型,也不会搜索导入,但它适用于 90% 的情况。

    (您必须停用绳索。)

    【讨论】:

      【解决方案2】:

      我想你确实想要安装包python-mode! ropemacs 变体似乎仅用于重构,而 pymacs 允许 Python 作为 Emacs 扩展语言——这两种语言都不是标准支持所需要的。

      【讨论】:

      • 现在我尝试遵循 sudo aptitude install python-mode 然后我得到一个额外的菜单 IM-Python 和其他 Python 菜单完全改变了现在没有完整的符号
      • 就是这样——你需要其他的 emacs 工具来完成 Linux 下的代码。 EmacsWiki 可以帮助您入门,工具(cedet、ecb、...)也在 Ubuntu 中。也就是说,除了 TAGS 和“更简单但基本足够好”的 M-/。
      • @TonyCruise 似乎使用了过时的版本。请加载当前的,开发在这里:gitlab.com/groups/python-mode-devs
      【解决方案3】:

      Emacs 在 Ubuntu 9.10 上为我开箱即用。

      在尝试代码完成之前,您是否尝试过 C-c TAB(更新导入)?除非你这样做,否则我认为它不会起作用。

      【讨论】:

      • 我输入了 C-c TAB 。然后我写 impo (我希望它完成导入)然后从菜单 Python-> Complete symbol I got No match.
      • 是的,你是对的。我的手指输入了M-/,它有效,但与菜单条目Complete Symbol 不同,它似乎不起作用。
      【解决方案4】:

      我不确定你必须做任何花哨的事情才能让 Python 开发工作。在 gNewSense deltah(Ubuntu 8.04 的分支)上,我所做的只是编辑一个 .py 文件,第一行是:

      #!/usr/bin/python

      然后 Emacs 只是计算出来并为您提供 python 模式选项。除了 Emacs,我不需要安装任何东西。

      再一次,这可能没有帮助,因为 gNewSense 默认预安装了 Emacs。我必须在我的一个香草 Ubuntu 安装上执行此操作。

      【讨论】:

      • Emacs 通过查看 py 扩展来激活 Python 模式但代码编译不起作用
      • 我的意思是 Python 菜单是可见的。我尝试了 Menu Python->Complete symbol 但没有用。
      • @TonyCruise 应该。请在gitlab.com/groups/python-mode-devs/issues 提交错误报告,因为它需要更多信息来修复它。
      猜你喜欢
      • 1970-01-01
      • 2011-03-30
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      • 1970-01-01
      • 2014-02-07
      • 1970-01-01
      相关资源
      最近更新 更多