143

私はEmacsをチェックすることにしました、そして私はそれがとても好きでした。今、私はEmacsスターターキットを使用しています。これは、Emacsのデフォルトインストールに、より良いデフォルトといくつかの素晴らしいカスタマイズを提供します。

私はそれを少しカスタマイズし、yasnippetcolor-themesunbound、その他のものを追加しました。githubリポジトリを設定して、すべてのカスタマイズを保持し、複数の場所からそれらにアクセスできるようにしました。何か問題が発生して.emacs.dディレクトリが失われた場合に備えて。

これらはすべて非常に優れていますが、問題があります。Emacsのロードには約1〜2秒かかります。AFAIK Mx byte-compile-fileを使用して個々の.elファイルを.elcにコンパイルでき、動作します。しかし、.elファイルはたくさんあります。Emacsのロードを高速化するために、簡単なコマンドなどでそれらすべてをコンパイルする方法があるのではないかと思います。私のEmacsは常に開いているわけではなく、特にTotal Commanderで編集コマンドのデフォルトエディターとして設定した後は、頻繁に開いたり閉じたりして、より速く慣れるようにしています(ええ、ここではWindows XPです)。

私のEmacsのバージョンは22.3です。そして、はい、カスタマイズなしのデフォルトのEmacsインストールは即座に起動します。

ロード時にどちらのバージョンが優先されるかわかりません。ちなみに、.elまたはコンパイルされた.elcのいずれかです。

それで、Emacsに.emacs.dディレクトリ内のすべてをバイトコンパイルさせるためのelispコマンドまたはEmacsコマンドラインスイッチはありますか?

4

6 に答える 6

221

C-u 0 M-x byte-recompile-directory

ディレクトリと以下のすべてのサブディレクトリにあるすべての.elファイルをコンパイルします。

部分は、C-u 0対応する.elcを持たないすべての.elファイルについて質問しないようにすることです。

于 2009-08-01T19:07:00.717 に答える
47

emacsを起動するたびにバイトコンパイルが必要なものすべてを自動的にバイトコンパイルするために、ファイルload-pathの先頭に変更を加えた後、次のように配置します。.emacs

(byte-recompile-directory (expand-file-name "~/.emacs.d") 0)

驚いたことに、(何かをコンパイルする必要がない限り)起動時間はそれほど長くなりません。

emacsを高速化するために、最初にprofile-dotemacs.elを使用して遅い部分を特定し、次にそれらをautoloadsに置き換えました。

于 2012-01-17T21:49:03.380 に答える
27

--batchフラグを使用して、コマンドラインから再コンパイルできます。

すべてを再コンパイルするには、

emacs --batch --eval '(byte-recompile-directory "~/.emacs.d")'

または、Makefileからのように単一のファイルを再コンパイルするには、

emacs --batch --eval '(byte-compile-file "your-elisp-file.el")'
于 2012-09-12T18:31:39.400 に答える
18

これは質問から少し揺らいでいますが、読み込みが遅いという問題を解決するために、Emacs23の新しいデーモン機能を使用できます。

「サポートパッケージがたくさんある場合、emacsの起動は少し遅くなる可能性があります。ただし、emacs23はemacs--daemonをもたらします。これにより、バックグラウンドでemacsを起動できます(たとえば、ログインしたとき)。すぐにポップできます。 emacsclientで新しいemacsウィンドウ(フレーム)をアップします。もちろん、古いバージョンではすでにemacsの「サーバー」を使用できますが、バックグラウンドで起動できるため、これははるかに優れたソリューションになります。」

http://emacs-fu.blogspot.com/2009/07/emacs-23-is-very-near.htmlから

于 2009-08-02T02:23:47.113 に答える
2

私がspacemacsを使用している場合、コマンドはspacemacs/recompile-elpaです。このコマンドbyte-recompile-directoryはファイルをコンパイルしません。

于 2018-05-01T15:43:57.063 に答える
2

私が使用するコマンドはですM-x byte-force-recompile RET。次にディレクトリに問い合わせるので、たとえば、を指定し~/.emacs.d/elpa/ます。次に、そこにあるすべてのものを再コンパイルします。通常、.elc最初にファイルを削除したり、他の方法でファイルを混乱させたりする必要はありません。

于 2020-08-19T20:00:15.763 に答える