2017-05-05 15 views
1

デフォルトのEmacs cc-mode.elを別のファイルで上書きしたいと思います。これは、地元のEmacsの設定ファイルをロードするために正しく動作Emacsでデフォルトのモードファイルを上書きするにはどうしたらいいですか?

(add-to-list 'load-path "/usr/home/smooth/emacs" t) 

:私の.emacsで、私は次の行を持っています。たとえば、

(require 'go-mode-autoloads) 

go-mode.elを上記のディレクトリからロードします。

デフォルトのEmacs c-modeを無効にすることを願って、必要なcc-mode.elファイルを上記のディレクトリに配置しようとしました。ただし、/usr/home/smooth/emacsに入れたファイルcc-mode.elはロードされませんでした。代わりに、デフォルトのものを使い続けました。

Emacsにcc-mode.elファイルを使用させることができますが、デフォルトのファイルではありません。私はすでにGoogleで広範囲に検索し、Emacs Wikiを試しましたが、正しいページが見つかりませんでした。

また、システムのデフォルトよりもc-modeの別のファイルを使用するようにEmacsを設定する方法はありますか?現在のcc-mode.elの名前を別の名前に変更しても構いません。

私のEmacsのバージョンは25.2です。

+0

'cc-mode'が' load-path'変更の前にロードされていない場合、あなたがしたことは、一般的にうまくいくでしょう。 – phils

+0

Emacs Wikiを見て、 "ロードパス"の最後に "t"がないことに気づいたので、それを削除して作業を開始しました。上記の「t」が問題の原因かもしれません。私が逃げようとしていたccモードでの誤動作もまた消えてしまったというのは、非常に奇妙なことです。上記の "t"は何らかの他のエラーを引き起こした可能性があります。 Emacs Wikiページについてはhttps://www.emacswiki.org/emacs/LoadPathを参照してください。 –

+0

このページが見つかりました:https://www.gnu.org/software/emacs/manual/html_node/elisp/List-Variables.html。 '通常、要素が追加された場合はシンボルの先頭に追加されますが、オプションの引数appendがnil以外の場合は最後に追加されます。'最後に追加したようです。数日前にemacs 25.2に切り替えるまで動作していたので、なぜそれがcc-modeをひどくひどく破ったのか分かりません。今はうまくいっています。 –

答えて

0

Emacs Wikiを見ると、 "load-path"の最後に "t"がないことがわかりましたので、削除して作業を開始しました。上記の「t」が問題の原因かもしれません。私が逃げようとしていたccモードでの誤動作もまた消えてしまったというのは、非常に奇妙なことです。上記の "t"は何らかの他のエラーを引き起こした可能性があります。 Emacs Wikiページについては、emacswiki.org/emacs/LoadPathを参照してください。

このページが見つかりました:gnu.org/software/emacs/manual/html_node/elisp/...。通常、要素が追加された場合、それはsymbolの先頭に追加されますが、オプションの引数appendがnil以外の場合、末尾に追加されます。私は最後に追加しているようだ。数日前にemacs 25.2に切り替えるまで動作していたので、なぜそれがcc-modeをひどくひどく破ったのか分かりません。今はうまくいっています。

+0

多くの場合、 'add-to-list'の中のAPPENDのようなオプションのパラメータはブール値です。つまり、' nil'でも 'nil'でもない場合にのみ重要です。そのような場合には説明的な値を与えたいと思います。 '(add-to-list 'load-path" foo "append)'を実行します。 – jpkotta

0

あなたはload-library(またはload)は無条件に別のライブラリまたは同じライブラリの別のバージョンなどによって機能(複数可)、それは、すでに提供されている提供は(すでにあったことも、にライブラリをロード使用することができますロードされた)。

load-pathの先頭に近いディレクトリにロードするライブラリを置き、load-libraryに電話するだけです。

[ただし、ライブラリの読み込み(またはリロード)は、ではありません。は既に評価されている可能性のあるdefvarsおよびdefcustomsをキャンセルします。たとえば、ライブラリfoo.elfoo-optionのdefcustomがあり、それがロードされていて、defcustomを持っていて異なるデフォルト値を持つ独自のバージョンのfoo.elをロードすると、あなたは無視されます。 defvardefcustomの一部です]

関連する問題