いくつかのメジャー モードにバッファーがあり、別のバッファーにはモード ファイル自体 (*.el) があります。*.el ファイルを編集した後、emacs を再起動せずに、最初のバッファーに反映された変更を確認したいと考えています。-mode 関数を実行しようとしましたが、バッファーは変更されませんでした。ありがとう
3 に答える
あなたのモードが機能を提供する場合(そうあるべきです!)、(provide 'foo-mode)
それを使用することができます
M-x unload-feature RET foo-mode RET
次に、通常どおりモードを再度ロードします(foo-mode
適切なオートロードがある場合は使用するか、使用するload-library
か、load-file
そうでない場合)。
M-x load-file your-mode.el
また
M-x eval-buffer
次に、おそらく次のようにして、バッファ内の動作のオンとオフを切り替えます。
M-x your-mode
M-x your-mode
または、モードがプレフィックス引数を認識する場合
C-u 1 M-x your-mode
注:ファイルをロードするとき、defvar
既存の値をオーバーライドしないため、の呼び出しで値を変更する場合は、カーソルが式内にあるときdefvar
に行うか、を使用して、それらを具体的に評価する必要があります。式を入力します。Emacsでのlispの評価に関するドキュメントについては、このページを参照してください。C-M-xdevfar
M-x :
モードのソースを編集するときは、変更した関数を評価する必要があります。内部的にEmacsは古いコードを使用するため、ファイルに保存するだけでは不十分です。
たとえば、MCeで作業している関数定義の最後にジャンプして、CxCeで関数を評価できます。その時点から、Emacsは現在の定義を使用します。
これはモード定義でも機能しますが、多くの場合、Mx mode-nameを使用してモードを呼び出すことは、トグルとして実装されます。一度呼び出すと、モードがアクティブになり、もう一度呼び出すと、モードが非アクティブになります。したがって、Mxmode-nameを2回実行する必要がある場合があります。