我已经安装了ropemacs作为python开发包的emacs-for-python集合的一部分。
当我使用rope-goto-definition
和rope-show-doc
函数转到/显示库符号时,我可以或多或少地始终让emacs挂起。
为了启用库的内省,我将以下内容添加到$PROJECT_ROOT/.ropeproject/config.py
:
VIRTUAL_ENV = "$HOME/.virtualenvs/$PROJECT_ROOT/"
ACTIVATE_FILE = VIRTUAL_ENV + "bin/activate_this.py"
execfile(ACTIVATE_FILE, dict(__file__=ACTIVATE_FILE))
跳转到项目本地定义时似乎永远不会发生,并且不一定总是在跳转到库函数时。然而,一旦我在图书馆里四处寻找,它似乎在一两次额外的跳跃之后一直发生。也就是说,我还没有真正找到一个有用的模式。一旦emacs挂起,我唯一能做的就是多次执行C-g,直到emacs响应,然后快速杀死 * Pymacs * 缓冲区。如果我这样做太慢,它会再次冻结。在重新启动Pymacs之后,我有时能够跳转到之前使其冻结的符号,但大多数时候跳转到相同的符号将导致它立即再次冻结。一旦我重新启动 * Pymacs * 一次,python集成似乎也会稍微不稳定,除了我输入几个字符之外,有时没有明显的原因。
我怎样才能继续调试呢?
我从它的git存储库(rev. a5274)安装了emacs-for-python。我的emacs来自http://emacsformacosx.com/,版本为24.3。
编辑:等待超过十五分钟后,pymacs终于抛出了一个错误。这是$ HOME / Library / Saved Application State / com.adobe.flashplayer.installmanager.savedState:
中的权限错误打开[$ HOME]项目...完成pymacs-report-error:Python: OSError:[Errno 13]权限被拒绝:'$ HOME / Library / Saved 申请状态/ com
由于某种原因,该目录由root拥有。
现在似乎跳到符号始终有效,但通常情况下它很慢,正如伊克巴尔安萨里所暗示的那样。
进一步调查我试图编译emacs-for-python安装目录(C-u 0 M-x byte-recompile-directory
)的内容。看起来它可能会缩短查找时间,但有时它仍然非常慢。
现在最令人难以理解的是,跳转到定义所需的时间并不一致。有时立即完成的同样的跳跃可能在其他时间需要几分钟。