ropmacs的用法教程


78

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

因此,一旦安装了ropmacs,在一些简单的python脚本上执行该操作的步骤是什么?喜欢的东西“如果你在你的Emacs这个脚本,把闪烁的广场这里,按下,它确实”将是一个答案。

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

Answers:


63

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

为了充分利用ropmacs,我建议获取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的性质,它并不总是完整的列表。

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

编辑:针对下面的评论,这正是将其他路径添加到python路径的方法,因此自动完成功能也会查找这些符号。

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

这进去 .ropeproject/config.py


6
这根本无助于回答这个问题。重复一遍,如何使用ropemacs。您甚至都没有说过如何选择根文件夹。
blokeley 2010年

5
总体而言,您已经知道如何选择根项目文件夹。Emacs已经在提示您了……
马修·塔伯特

2
另外,我还为您提供了有关“如何使用” ropmacs的最佳建议。我认为,最好的使用方式是将其与自动完成功能一起使用。当您这样做时,您甚至不需要了解太多,它就在后台为您完成创建工作。
马修·塔尔伯特

2
在那里,我添加了几个基本命令。确实,这比我找到的使用建议要好得多,所以希望对您有所帮助。
马修·塔伯特

1
哦,我明白了。在按M- /后,我只需要在迷你缓冲区中按TAB键,或键入要查找的符号的一部分,然后按TAB键。在我输入诸如“ Image。”之类的代码之后立即尝试使用M- /之前,它显示的是“ Completion for Image .:”,而我认为这意味着找不到任何内容。完成。
Headcrab 2010年


10

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

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


有关设置virutalenvs的更多信息
scytale

3

对于ropmacs依赖的绳索库的一般用法,然后签出:

绳索概述

它详细描述了每个重构的作用,如提取方法。请注意,根据作者所述,此文档有些过时。但是,它应该为绳索的功能提供足够的介绍以开始使用。

要在Emacs中执行ropemacs命令,可以尝试以下一种或多种方法:

  1. 使用中的“按键绑定”部分 自述文档链接freyley的回答为指导,以学习的映射。
  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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.