最佳答案
我一直在使用 Rsense 更新我的 emacs 配置,以便在输入代码时出现一个自动完成的下拉框。这在大多数文件中工作得很好,除了我发现它不允许我从表中选择一个答案时,我正在编辑一些代码在我的 ruby on ails 项目。
这是我的设置: Https://github.com/map7/simple_emacs
我在 Ubuntu 10.04下使用这个。
对于简单的 Ruby 脚本文件,它工作的很好。我可以打开一个新的文件和类型。
"test".up...
正如我在上面的选项列表中键入“ p”字符,我可以用箭头键在列表中上下移动,然后用回车键选择一个(例如: 大写)。
但是,当我在 Rails 项目的基本目录中进行完全相同的测试时,这种方法就不起作用了。
更新:
发现这个问题是与(需要’轨道) ,所以它的东西在 emacs-ails 插件,自动补全不喜欢。
更新:
如果我注释掉这个宏,那么自动补全就可以工作了,否则它就不工作了:
(defmacro* rails-project:with-root ((root) &body body)
"If you use `rails-project:root' or functions related on it
several times in a block of code, you can optimize your code by
using this macro. Also, blocks of code will be executed only if
rails-root exist.
(rails-project:with-root (root)
(foo root)
(bar (rails-core:file \"some/path\")))
"
`(let ((,root (rails-project:root)))
(when ,root
(flet ((rails-project:root () ,root))
,@body))))
有人能解释一下为什么自动补全会中断吗?