ropemacs使用教程
有很多网站上有关于安装 ropemacs的说明,但到目前为止,我找不到有关如何使用它已经安装后的说明。 我已经安装了它,或者至less看起来如此,Emacs的顶部菜单栏中有“Rope”菜单。 怎么办? 到目前为止,我只能使用“显示文档”(默认为抄送d)。 试图使用代码辅助(这是自动完成的,我猜?)只会导致Emacs在迷你缓冲区中询问“Rope项目根文件夹”(这是什么?),然后什么也没有显示。
所以,一旦安装了ropemacs,在一些简单的python脚本中看到这个脚本的步骤是什么? 就像“如果你在你的emacs中有这个脚本,并把这个闪烁的方块放在这里 ,然后按这个 ,那么这就是一个答案”。
(我一直在想是否应该问这个问题,因为没有其他人似乎有同样的问题)
那么,你首先需要select你的项目根文件夹。 很简单,这是您的项目的顶级文件夹,或者如果您正在处理单个文件的当前文件夹。 一旦你select了根文件夹,那么其他选项就可以工作了,例如代码辅助,显示文档,跳转到其他符号等等。
为了充分利用ropemacs,我build议将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中安装了自动完成function。 完成此操作后,您将在input一个字或符号的几个字符后自动完成自动填充。
您可以修改您的ROOT / .ropeproject / config.py文件以将更多目录添加到绳索查找path中,以便提供更好的自动完成。
编辑:我最重要的两个function是查找文档,并直接跳转到一个函数定义。 如上所述,这取决于正确设置项目的绳索查找path。
文档 :将光标放在符号(函数名称,类名称等)上,然后执行:
Cc d
这将向您显示相关符号的文档string。
跳转到定义 :将光标放在符号(函数名称,类名称等)上,然后执行:
Cc g
这将立即打开符号所在的文件并跳转到定义的开头。 这对于文档稀less并且想要查看实际代码的时间来说非常有用。 另外,在你自己的代码里面导航真的很好。
查找事件 :
Cc f
智能search整个项目中光标处的符号。
代码帮助 :
M-/
只要键入一个函数,类等的第一个字符,这将显示可能的完成列表。 请注意,由于python的本质,它并不总是一个完整的列表。
重构 :在Rope-> Refactor下有相当多的选项。 这些是更好地组织你的代码。 如何使用它们应该大多是不言自明的; 一般来说,select你想重构的代码区域,然后select命令。
编辑 :为了回应下面的评论,这里是如何添加其他path到您的Pythonpath,所以自动完成也会查找这些符号。
prefs.add('python_path', '~/path/to/virtualenv/lib/python2.6/site-packages')
这在.ropeproject/config.py
我发现的最佳使用信息是ropemacs源代码中的自述文件,在这里:
你可以用rope-open-project
来设置根文件夹。 一旦你设置了root项目,一个.ropeproject
目录将被创build。
在里面,一个config.py文件有钩子,你可以在项目设置完成后运行(python)代码。 project_opened(project):
函数是运行代码的好地方。 我通常会激活虚拟环境imp.load_source('/path-to-env/activate_this.py')
,这样我就可以获得虚拟环境中其他库的源代码覆盖。
对于ropemacs依赖的绳索库的一般用法,请检查:
绳概述
它详细地描述了每一个重构如提取方法 。 请注意,根据作者这个文件是有点过时了。 但是,它应该提供足够的介绍来开始绳索的function。
要在Emacs中执行ropemacs命令,可以尝试以下一种或多种方法:
- 使用freyley答案的README文档链接中的“Keybinding”部分作为了解映射的指南。
- 如果你不记得键盘绑定,那么执行
Mx rope-<specific command name>
并填写相关的重构名称。 例如,提取方法是Mx rope-extract-method
。 - 在Emacs
<menu-bar> -> Rope
。 例如,对于提取方法,然后select<menu-bar> -> Rope -> Refactorings -> Extract Method
。 它还会显示相关的按键(例如Cc rm
)