ropemacs使用教程

时间:2010-05-18 07:52:20

标签: python emacs ide autocomplete

有许多网站都有关于安装 ropemacs的说明,但到目前为止,我找不到任何有关如何使用之后的说明。我安装了它,或者至少看起来如此,Emacs的顶部菜单栏中有“Rope”菜单。怎么办?到目前为止,我只能使用“显示文档”(默认为C-c d)。尝试使用代码辅助(自动完成,我猜?)只会导致Emacs在迷你缓冲区中询问“绳索项目根文件夹”(那是什么?)然后什么也没有显示。

因此,一旦安装了ropemacs,在一些简单的python脚本上看到它的操作步骤是什么?类似于“如果你的emacs中有这个脚本并将闪烁的正方形放在这里并按这个,它会 ”将是一个答案

(我一直在考虑是否应该问一下这个问题,因为似乎没有其他人有同样的问题)

4 个答案:

答案 0 :(得分:63)

那么,您首先需要选择项目根文件夹。很简单,这是项目顶层的文件夹,如果您正在处理单个文件,则是当前文件夹。一旦选择了根文件夹,那么其他选项将起作用,例如代码辅助,显示文档,跳转到其他符号等。

为了充分利用ropemacs,我建议获取autocomplete.el,将其放入〜/ .emacs.d,然后将其添加到.emacs

(add-to-list 'load-path "~/.emacs.d/")
(add-to-list 'load-path "~/.emacs.d/auto-complete-1.2")
(autoload 'python-mode "python-mode" "Python Mode." t)
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
(add-to-list 'interpreter-mode-alist '("python" . python-mode))
(require 'python-mode)
(autoload 'pymacs-apply "pymacs")
(autoload 'pymacs-call "pymacs")
(autoload 'pymacs-eval "pymacs" nil t)
(autoload 'pymacs-exec "pymacs" nil t)
(autoload 'pymacs-load "pymacs" nil t)
(pymacs-load "ropemacs" "rope-")
(setq ropemacs-enable-autoimport t)

(require 'auto-complete)
(global-auto-complete-mode t)

这假设您在〜/ .emacs.d / auto-complete-1.2中安装自动完成功能。执行此操作后,您将在键入单词或符号的几个字符后自动获得自动完成功能。

您可以修改ROOT / .ropeproject / config.py文件,将更多目录添加到绳索查找路径,以便提供更好的自动完成功能。

编辑:对我来说,最重要的两个功能是查找文档并直接跳转到函数定义。这取决于如上所述为项目正确设置绳索查找路径。

文档:将光标放在符号(函数名,类名等)上,然后执行:

C-c d

这将显示相​​关符号的文档字符串。

跳转到定义:将光标放在符号(函数名,类名等)上,并执行:

C-c g

这将立即打开符号所在的文件并跳转到定​​义的开头。这对于文档稀疏且您希望查看实际代码的时间非常有用。此外,在您自己的代码中导航非常好。

查找事件

C-c f

在整个项目中智能搜索光标处的符号。

代码帮助

M-/

只需键入函数,类等的第一个字符,这将显示可能的完成列表。请注意,由于python的性质,它并不总是一个完整的列表。

<强>的重构: 在Rope-&gt; Refactor下有很多选项。这些是为了更好地组织您的代码。如何使用它们应该大多是不言自明的;通常,选择要重构的代码区域,然后选择命令。

修改: 在回答下面的评论时,这里是如何向python路径添加其他路径,因此自动完成也会查找这些符号。

prefs.add('python_path', '~/path/to/virtualenv/lib/python2.6/site-packages')

这是.ropeproject/config.py

答案 1 :(得分:13)

我发现的最佳用法信息是ropemacs源代码中的自述文件,在这里:

https://github.com/python-rope/ropemacs

答案 2 :(得分:10)

您可以使用rope-open-project设置根文件夹。设置根项目后,将创建.ropeproject目录。

在其中,config.py文件具有挂钩,您可以在设置项目后运行(python)代码。 project_opened(project):函数是运行代码的好地方。我通常会激活虚拟环境imp.load_source('/path-to-env/activate_this.py'),这样我就可以获得虚拟环境中其他库的源代码。

答案 3 :(得分:3)

对于ropemacs所依赖的绳索库的一般用法,请查看:

  

Rope Overview

它详细描述了每个重构的作用,例如extract method。请注意,根据作者的说法,这个文档有点过时了。但是,它应该为绳索的功能提供足够的介绍才能开始。

要在Emacs中执行ropemacs命令,您可以尝试以下一项或多项:

  1. 使用中的“键绑定”部分 来自README docs link freyley's answer作为学习指南 映射。
  2. 如果您忘记了键绑定,请执行M-x rope-<specific command name>并填写 相关的重构名称。对于 例如,提取方法将是 M-x rope-extract-method
  3. 在Emacs <menu-bar> -> Rope中选择。例如,对于提取方法,请选择<menu-bar> -> Rope -> Refactorings -> Extract Method。它还会显示相关的键绑定(例如C-c r m