Emacs中的绳索和Yasnippet

时间:2012-04-08 02:16:55

标签: python emacs elisp rope yasnippet

我按照http://www.enigmacurry.com/2009/01/21/autocompleteel-python-code-completion-in-emacs/#disqus_thread给出的教程,使用rope和yasnippet设置了对emacs的python支持。 我声明了一个字符串变量a_str="Hello"。现在我输入a_str。并按Tab键,我在迷你缓冲区中收到以下消息

Symbol's function definition is void: yas/snippet-table

我之前得到了一次下拉,但突然之间已经停止了工作。有什么理由可以发生这种情况吗?

另外,我想知道该行的含义

(setq yas/trigger-key (kbd "C-c <kp-multiply>"))

请帮助 谢谢

1 个答案:

答案 0 :(得分:3)

(setq yas/trigger-key (kbd "C-c <kp-multiply>"))

表示:为字符串C-c <kp-multiply>描述的键绑定生成内部表示,并将该值赋给变量yas/trigger-key

<kp-multiply>通常是键盘上的*键。)

然后,您可以在密钥绑定中使用yas/trigger-key。 e.g:

(local-set-key yas/trigger-key 'some-function)

至于你的主要错误,有些东西没有被正确加载(这样yas/snippet-table确实存在于代码中,但在使用之前没有被加载),或者Yasnippet与另一个之间存在不兼容性试图使用它的库(在这种情况下可能是自动完成)。

我在你链接的评论主题的底部看到,当时有关于自动完成0.2超过0.1的变化导致类似错误的讨论。我还看到教程作者链接到他自己的Emacs配置的git存储库,并且仍在使用版本0.1的自动完成。

所以我建议先检查每个库的版本。本教程使用:

  • pymacs 0.23
  • yasnippet 0.5.9
  • autocomplete 0.1

Rope版本尚不清楚,仅被描述为“最新的开发版本(截至2008年12月)”

或者,您可能更喜欢直接从该git存储库中获取版本(特别是当repo中的yasnippet版本说它是版本0.2.2而不是0.5.9时)。

如果您使用它们,那么您可以尝试升级内容(并且可能会在列出一组兼容版本的线程中添加注释,如果您想出一个更近期的工作组合)。

如果失败了,这是另一个可能有用的git存储库:

https://github.com/gabrielelanaro/emacs-for-python/

相关问题