3

emacs内でプログラムをコンパイルする最良の方法は何ですか? 現在、別のバッファーを開き、C-x 3その中で eshell を実行してからM-x eshell、make または clang を直接呼び出しています。ほとんどの場合、私は Makefile をセットアップしています。

M-x compileeshell 内で make を実行するのと比較して、コンパイル プロセスを実行する利点はありますか? それを行う他の方法と、それらの長所/短所は何ですか?

4

2 に答える 2

9

これを行う最も簡単な方法は、Emacs 組み込みcompileコマンドを使用することです。M-x compileうまくいくはずです。その後、実行されるコマンドを編集し (デフォルトでmake -kは )、リターン キーを押してコンパイルを実行できます。次に、Emacs は出力を解析し、エラーが見つかった場合は、ソース ファイルにリンクして、バッファーで開くことができるようにします。

それについての良い点は次のとおりです。

  • 出力バッファの解析
  • 呼び出し間のコンパイル コマンドの記憶
  • コンパイル出力は選択されていないバッファに表示されます。作業中のファイルをすばやく編集して、ばかげたエラーを修正できます。
  • M-nエラーメッセージM-pスクロール

これらの機能のほとんどはcompilation-minor-mode、実際のコンパイル コマンドとバッファではなく、マイナー モードによって提供されます。でコンパイル コマンドを実行するeshellと、マイナー モードを に設定することで、おそらく同様の結果を得ることができますcompilation-minor-mode

于 2012-11-02T20:44:10.473 に答える
2

私は個人的に、次の理由から、マルチタームmake内でコンパイルするために使用しているコマンドを実行することを好みます。

  • ( 、、 …)M-xcompileRETをアクティブにした場合と 同じように機能します。compilation-shell-minor-modeM-pC-`

  • ただし、明らかに、次のような他のコマンドを使用できます

    mkdir build
    cd build
    ./configure --with-another-option
    

    もちろん、Emacs からこれを行うこともできますが、私はこの種のものにはシェルの相互作用を好みます。

そして、imo、の主な欠点はM-xcompile、別のディレクトリにあるファイルを編集している場合 、正しいディレクトリでMakefile使用してから. しかし、必要に応じ て に話しかけると、正しいディレクトリに切り替えて、元に戻す必要があります。M-xcompileM-xrecompilemake clean && make

ただしterm.el、独自の欠点があり、移植性のないハッキーな方法を使用して現在のディレクトリを追跡します。

于 2012-11-03T10:33:41.640 に答える