1

我已将ropemacs 安装为python 开发包的emacs-for-python集合的一部分。

当我使用rope-goto-definitionandrope-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 挂起,我唯一能做的就是执行 Cg 多次,直到 emacs 响应,然后快速杀死*Pymacs*缓冲区。如果我这样做太慢,它会再次冻结。重新启动 Pymacs 后,我有时能够跳转到之前让它冻结的符号,但大多数时候跳转到同一个符号会导致它立即再次冻结。一旦我重新启动,python 集成似乎也稍微不稳定*Pymacs*一次,有时除了我输入几个字符之外没有明显的原因挂起。

我该如何继续调试呢?

我从它的 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] Permission denied: '$HOME/Library/Saved Application State/com

由于某种原因,该目录归根用户所有。

现在似乎跳转到符号总是有效的,但通常它很慢,正如 Iqbal Ansari 所建议的那样。

进一步调查,我尝试编译 emacs-for-python 安装目录 ( C-u 0 M-x byte-recompile-directory) 的内容。看起来它可能会稍微减少查找时间,但有时它仍然非常慢。

现在最让我困惑的是,跳转到定义所需的时间并不一致。同样的跳跃,有时会立即完成,有时可能需要几分钟。

4

0 回答 0