绳索使用教程
Posted
技术标签:
【中文标题】绳索使用教程【英文标题】:ropemacs USAGE tutorial 【发布时间】:2011-02-20 18:33:56 【问题描述】:有许多站点提供了关于安装ropemacs 的说明,但到目前为止,我还没有找到任何关于如何在安装后使用它的说明。我已经安装了它,或者至少看起来是这样,Emacs 在它的顶部菜单栏中有“绳索”菜单。怎么办?到目前为止,我只能使用“显示文档”(默认为 C-c d)。尝试使用代码辅助(我猜它是自动完成的?)只会导致 Emacs 在 minibuffer 中询问“绳索项目根文件夹”(那是什么?),然后什么也没有显示。
那么,一旦安装了ropemacs,有哪些步骤可以在一些简单的python 脚本上看到它?像“如果你在你的 emacs 中有这个脚本并将闪烁的方块 here 并按 this,它确实 that”将是一个答案.
(我一直在考虑是否应该问这个问题,因为似乎没有其他人有同样的问题)
【问题讨论】:
【参考方案1】:我发现的最佳使用信息是ropemacs 源代码中的自述文件,此处:
https://github.com/python-rope/ropemacs
【讨论】:
好像README.txt文件已经移到这个目录bitbucket.org/agr/ropemacs/src【参考方案2】:对于ropemacs所依赖的rope库的一般用法,请查看:
Rope Overview
它详细描述了每个重构的作用,例如extract method。请注意,根据作者的说法,这个文档有点过时了。但是,它应该提供足够多的绳索功能介绍以供入门。
要在 Emacs 中执行ropemacs 命令,您可以尝试以下一项或多项:
-
使用“键绑定”部分
README docs link 来自
freyley's answer 作为学习指南
映射。
如果记不住键位,则执行
M-x rope-<specific command name>
并填写
相关的重构名称。为了
例如,提取方法是
M-x rope-extract-method
。
在 Emacs 中选择 <menu-bar> -> Rope
。例如,对于提取方法,然后选择<menu-bar> -> Rope -> Refactorings -> Extract Method
。它还会显示相关的键绑定(例如C-c r m
)
【讨论】:
【参考方案3】:好吧,您首先需要选择您的项目根文件夹。很简单,这是项目顶层的文件夹,或者如果您正在处理单个文件,则为当前文件夹。选择根文件夹后,其他选项将起作用,例如代码辅助、显示文档、跳转到其他符号等。
为了充分利用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->Refactor 下有很多选项。这些是为了更好地组织你的代码。如何使用它们应该是不言自明的;一般来说,选择要重构的代码区域,然后选择命令。
编辑: 为了回应下面的评论,这正是如何将其他路径添加到您的 python 路径,以便自动完成功能也会查找这些符号。
prefs.add('python_path', '~/path/to/virtualenv/lib/python2.6/site-packages')
这是.ropeproject/config.py
【讨论】:
这根本无助于回答这个问题。重复一遍,你如何使用ropemacs。您甚至没有说如何选择根文件夹。 大佬,你已经知道如何选择根项目文件夹了。 Emacs 已经在提示你了... 另外,我给了你关于“如何使用”ropemacs 的最佳建议。在我看来,使用它的最佳方式是将它与自动完成功能一起使用。当您这样做时,您甚至不必了解太多,它就在后台为您创建完成。 在那里,我添加了几个基本命令。真的,这比我找到的任何关于如何使用它的建议要好得多,所以我希望它有所帮助。 哦,我明白了。我只需要在按 M-/ 后在迷你缓冲区中按 TAB,或者键入我要查找的符号的一部分,然后按 TAB。在我尝试在键入之后立即使用 M-/ 之前,例如,“Image.”,然后它显示“Completion for Image.:”而没有其他任何内容,我认为这意味着它找不到任何完成。【参考方案4】:您可以使用 rope-open-project
设置根文件夹。设置根项目后,将创建一个 .ropeproject
目录。
在其中,config.py 文件具有挂钩,一旦项目设置,您就可以在其中运行 (python) 代码。 project_opened(project):
函数是运行代码的好地方。我通常会激活虚拟环境 imp.load_source('/path-to-env/activate_this.py')
,这样我就可以获得虚拟环境中其他库的源代码覆盖。
【讨论】:
more info 关于设置virutalenvs。rope-open-project
不存在 M-x
以上是关于绳索使用教程的主要内容,如果未能解决你的问题,请参考以下文章