因此,一旦安装了ropemacs,看起来像一些简单的python脚本中的步骤是什么来让它发挥作用呢?像“如果你在emacs中有这个脚本,并把闪烁的方框放在这里,按下这个,它会做那个”的东西就是一个答案。
(我一直在思考是否应该提出这个问题,因为似乎没有其他人有同样的问题)
首先,您需要选择项目的根文件夹。简单来说,这是您的项目的顶级文件夹,如果您正在处理单个文件,则为当前文件夹。选择了根文件夹后,其他选项才能正常工作,例如代码辅助、显示文档、跳转到其他符号等。
为了充分发挥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->重构下有许多选项,可用于更好地组织代码。大多数选项的使用方法应该是比较容易理解的;一般来说,选择要重构的代码区域,然后选择命令。
编辑: 针对下面的评论,以下是如何将其他路径添加到Python路径中,以便自动完成也可以查找这些符号。
prefs.add('python_path', '~/path/to/virtualenv/lib/python2.6/site-packages')
这段内容需要放在 .ropeproject/config.py
中。
我找到的最好的使用指南是在ropemacs源码的readme文件中,链接如下:
rope-open-project
命令来设置根目录。一旦你设置好了根项目,就会创建一个 .ropeproject
目录。project_opened(project):
函数是一个很好的地方来运行代码。通常我会激活虚拟环境 imp.load_source('/path-to-env/activate_this.py')
,这样我就可以获取虚拟环境中其他库的源覆盖率。rope-open-project
does not exist when I do M-x
- alper如果要使用ropemacs依赖的绳索库,请参阅:
其中详细描述了每个重构的功能,例如提取方法。请注意,根据作者的说法,此文档有点过时。但是,它应该提供足够的介绍来开始使用绳索的功能。
要在Emacs中执行ropemacs命令,您可以尝试以下一种或多种方法:
M-x rope-<specific command name>
并填写相关的重构名称。例如,提取方法将是M-x rope-extract-method
。<menu-bar> -> Rope
。例如,对于提取方法,则选择<menu-bar> -> Rope -> Refactorings -> Extract Method
。它还将显示相关的键绑定(例如,C-c r m
)