【问题标题】:ropemacs USAGE tutorial绳索使用教程
【发布时间】:2011-02-20 18:33:56
【问题描述】:

有许多站点提供了关于安装ropemacs 的说明,但到目前为止,我还没有找到任何关于如何在安装后使用它的说明。我已经安装了它,或者至少看起来是这样,Emacs 在它的顶部菜单栏中有“绳索”菜单。怎么办?到目前为止,我只能使用“显示文档”(默认为 C-c d)。尝试使用代码辅助(我猜它是自动完成的?)只会导致 Emacs 在 minibuffer 中询问“绳索项目根文件夹”(那是什么?),然后什么也没有显示。

那么,一旦安装了ropemacs,有哪些步骤可以在一些简单的python 脚本上看到它?像“如果你在你的 emacs 中有这个脚本并将闪烁的方块 here 并按 this,它确实 that”将是一个答案.

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

【问题讨论】:

    标签: python emacs ide autocomplete


    【解决方案1】:

    我发现的最佳使用信息是ropemacs 源代码中的自述文件,此处:

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

    【讨论】:

    【解决方案2】:

    对于ropemacs所依赖的rope库的一般用法,请查看:

    Rope Overview

    它详细描述了每个重构的作用,例如extract method。请注意,根据作者的说法,这个文档有点过时了。但是,它应该提供足够多的绳索功能介绍以供入门。

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

    1. 使用“键绑定”部分 README docs link 来自 freyley's answer 作为学习指南 映射。
    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

    【讨论】:

      【解决方案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
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-01
      • 2015-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多