Ropemacs 用法教程

安装 ropemacs 上有许多带有说明的站点,但是到目前为止,我还没有找到任何有关如何在已经安装之后使用 使用的说明。我已经安装了,或者至少看起来是这样,Emacs 在它的顶部菜单栏有“ Rope”菜单。现在怎么办?到目前为止,我只能使用“ Show document”(默认情况下是 C-c d)。尝试使用代码辅助(我猜这是自动完成的?)只会导致 Emacs 询问“ Rope project root file”(那是什么?)然后什么都没有显示。

那么,一旦安装了 ropemacs,在一些简单的 python 脚本上看到它运行的步骤是什么呢?比如“如果你有这个脚本在你的 emacs,把闪烁的方形 给你和按 这个,它做 那个”将是一个答案。

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

18041 次浏览

Well, you first need to select your project root folder. Quite simply, this is the folder at the top level of your project, or the current folder if you're dealing with a single file. Once you've selected the root folder, then other options will work, such as code assist, showing documentation, jumping to other symbols, etc.

为了充分利用 ropemacs,我建议获取 自动完成,将其放在 ~/. 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/。Py 文件将更多的目录添加到绳索查找路径,以提供更好的自动完成。

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

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

C-c d

这将显示有关符号的 docstring。

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

C-c g

这将立即打开符号所在的文件并跳转到定义的开头。这对于文档稀少且希望查看实际代码的情况非常有用。而且,它非常适合在您自己的代码中导航。

查找事件 :

C-c f

Smart search in your entire project for the symbol at the cursor.

代码帮助 :

M-/

Just type the first characters of a function, class, etc, and this will show a list of possible completions. Note that due to python's nature, it will not always be a complete list.

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

编辑 : 作为对下面一条评论的回应,下面正是如何将其他路径添加到您的 python 路径,以便自动补全也将查找这些符号。

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

这个放进 .ropeproject/config.py

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

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

我找到的最佳使用信息是 ropemacs 源代码中的自述文件,如下所示:

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

For general usage of the rope library that ropemacs depends on, then check out:

绳索概述

它比较详细地描述了每个重构所做的工作,例如 提取法。注意,根据作者的说法,这个文档有点过时了。然而,它应该提供足够的介绍绳子的功能开始。

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

  1. 中的“键绑定”部分 README docs link from 弗雷利的回答作为学习的向导 地图。
  2. If you can't remember the keybindings, then execute M-x rope-<specific command name> and fill in the 相关的重构名称 例如,提取方法是 M-x rope-extract-method.
  3. Select in Emacs <menu-bar> -> Rope. For example, for extract method then select <menu-bar> -> Rope -> Refactorings -> Extract Method. It will also show you the associated keybindings (e.g. C-c r m)