0

私は emacs の初心者で、Ruby on Rails の「スターター キット」をインストールしました。これはうまく機能します。ただし、私はPHPでも開発しており、スターターはいくつかの問題を引き起こします。

ruby ファイル以外のすべてのファイルを編集するときに、いくつかのマイナー モードをオフにしたい。

私の .emacs ファイルには次のものがあります。

(add-to-list 'load-path "~/.emacs.d/plugins/ruby-block")
(require 'ruby-block)

これをコメントアウトすると、すべてのファイルでマイナーが消えるので、次のようにフックを追加してみました (ただし、私は完全な初心者なので、これは間違ったアプローチかもしれません)。

(add-hook 'ruby-mode-hook (lambda () (add-to-list 'load-path "~/.emacs.d/plugins/ruby-block")))
(add-hook 'ruby-mode-hook (lambda () (require 'ruby-block)))

また、イベントフックを使用して関数を呼び出し、上記の行を関数に移動しようとしましたが、それでも機能しませんでした。

.rb 以外のすべてのファイルから ruby​​-block マイナーを削除する助けをいただければ幸いです。

4

2 に答える 2

1

あなたが言及した2行はマイナーモード(ところで:どちら?)が機能するために必要ですが、それらはマイナーモードをオンにする責任がありません。最初の1つ:

(add-to-list 'load-path "~/.emacs.d/plugins/ruby-block")

パス変数を拡張するだけです。つまり、Emacsがロードするコードを探し、2番目のコードは次のようになります。

(require 'ruby-block)

いくつかのライブラリコード、つまり主に関数定義を読み取ります。

実際のモード呼び出しは、おそらく次のようになります。

(ruby-block-mode t)

あなたは使用することで正しい道を進んでいました'ruby-mode-hookが、あなたはまたを心配する必要はありませload-path(require...)。彼らはそのままでいることができます、すなわち、彼らをコメントアウトする必要はありません。代わりに、マイナーモードの実際の呼び出しを見つけて(lambda ()...)宣言に入れれば、問題はないはずです。

于 2012-08-22T00:07:28.797 に答える
1

使用ruby-block-modeしていましたが、取り外してしまいました。

これが私が設定したものですruby-block-mode、試してみてください:

(eval-after-load 'ruby-mode
  '(progn
    (require 'ruby-block)
    (ruby-block-mode t)
    (setq ruby-block-highlight-toggle t)))
于 2012-08-22T08:54:13.807 に答える