コードの入力中にオートコンプリートのドロップダウンボックスが表示されるように、Rsenseを使用してemacs構成を更新しています。これは、Ruby on Railsプロジェクトのコードを編集しているときにテーブルから回答を選択できないことを除いて、ほとんどのファイルでうまく機能します。
これが私の設定です:https : //github.com/map7/simple_emacs
私はこれをUbuntu 10.04で使用しています。
単純なルビスクリプトファイルの場合は、うまく機能します。新しいファイルを開いて入力できます。
"test".up...
上に 'p'文字を入力するのと同じように、オプションのリストが表示され、矢印キーでリストを上下に移動して、Enterキーで1つ(例:大文字)を選択できます。
まったく同じテストを行ったが、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))))
これがオートコンプリートを壊す理由を誰かが説明できますか?