我一直在使用Rsense更新我的emacs配置,以允许在键入代码时出现自动完成下拉框。这在大多数文件中都可以很好地工作,除了我发现在我在ruby on rails项目中编辑一些代码时不允许从表中选择答案。
这是我的设置: https //github.com/map7/simple_emacs
我在Ubuntu 10.04下使用它。
对于简单的ruby脚本文件,效果很好。我可以打开一个新文件并键入。
"test".up...
就像我在向上键入“ p”字符时,会出现一个选项列表,并且我可以使用箭头键在列表中上移和下移,然后使用Enter键选择一个(例如,大写)。
什么时候不行,是当我在Rails项目的基本目录中进行完全相同的测试时。
更新:
发现问题出在(require'rails),所以emacs-rails插件中的某些内容是自动完成功能不喜欢的。
更新:
它在emacs-rails-> rails-project.el中。如果我将这个宏注释掉,则自动完成功能会起作用,否则不会:
(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))))
有人可以解释为什么这会破坏自动完成功能吗?
1
自动完成功能在红宝石,C ++,Lisp和一切使用
—
map7
我的意思是,这里的宏在哪里使用?
—
milkypostman 2012年
我主要使用rails宏在MVC中的不同文件之间跳转,并启动DB / server / console / etc。
—
map7 2012年
您可以提取解决方案来回答问题并给它“工作”票吗?
—
przemo_li 2012年
przemo_li,如果我对此有一个答复,我会这样做,但是当您安装了rails.el插件并且试图在Rails次要模式源代码文件中自动完成时,自动完成仍然无法正常工作。
—
map7 '10 -4-10