2016-09-25 6 views
1

私は端末からemacsを開いていましたが、私のCプログラムをコンパイルするたびに、まずemacsを終了し、端末でコンパイルしてからemacsを再オープンしてもう少し編集しなければなりません。Emacsと端末を同時にどのように動かすことができますか?

これを行うための簡単な方法はありますか?端末でのコンパイル時にもemacsを開いたままにすることはできますか?

私は、これはシェルモードに入るとは何かを持って知っているが、私はemacsのには本当に新しいあまりにも精通やIMなどinitファイルを編集しないんだけど、まだそれ

のこつに任意のヘルプを取得しようとしていますありがとう、ありがとう!

+0

2つの端末を開くのは簡単な方法です。あなたは 'Linuxを使用しているか、他あなたが' Cz'とバックグラウンドにはemacsを入れ、 'とシェルからそれを再度開くことができ – immibis

+0

%emacs'です。 EmacsのX対応バージョンを使用することも別の選択肢です。 –

+0

'はMx shell'でのemacsからターミナルを使用することができればEmacsのFILE.C& 'を入力することができます – choroba

答えて

3

Emacs内でプログラムをコンパイルするには、M-x compileと入力し、コンパイルコマンドを入力します。ボーナスとして、出力内のエラーまたは警告は、ソースコード内の対応する行へのリンクになります。

プログラムがコンパイルされたら、それを実行する方法はいくつかあります。非対話型プログラムの場合は、M-!(シェルコマンドを実行して終了するのを待っていて、その出力をバッファーに表示する)であれば十分です。それ以外の場合は、Emacs内でシェルを実行することができます。 M-x eshellでそれを行うことができます。 (一部の人々はM-x shell好む;の両方を試してみて、あなたが好きなものを参照してください)


また、あなたは一時的にEmacsを離れて戻ってターミナルに行きたい場合は、バックグラウンドでのEmacsを入れてC-zを入力することができます。シェルからEmacsに戻るには、%またはfg( "foreground"の場合)と入力します。 Emacsが現在バックグラウンドで動作しているかどうかを確認するには、jobsと入力してください。

+0

ありがとうございます!これは非常に役に立ちました。今からやっているでしょう:) – helloworld

3

また、M-x ansi-termを実行して、Emacsバッファの内部に機能するターミナルを持つことは簡単です。 Emacsで動作するインタラクティブな端末を持っているだけでなく、通常のEmacsキーバインディングを使ってその端末の出力をナビゲートすることができてうれしいです。

私はすべての環境変数がロードされていることを確認するために、このthis packageを使用しています。

0

いくつかの操作上の注意事項:

私はEmacsの中で何かを編集し、端末を必要としていたとき、私の通常の手順では、垂直方向に分割することです「Cxの2」または水平にできるようにするために「Cxの3」実際のウィンドウと並んで、端末エミュレータ(Mx eshellまたはMx shellのいずれか)を開いてください。ここから、必要に応じて 'C-x o'または 'C-u C-x o'を使用して前後に移動することができます。これにより、近くのウィンドウで何かが視覚的に実行されている間も編集を続けることができます。

これらのエミュレータは、実際のOS端末として正確に動作いけないまれなケースでは、我々は層やエミュレーションなしでネイティブのものを分割して使用することができる「C-X期のRET RET」。残念なことに、後のケースでは、枠付きウィンドウ間を循環することはできません( 'C-x o'付き)。ここでは、exitコマンドはemacで正常に動作することが要求されています。

+0

Emacsと対話するために端末プロセスを終了する必要はありません。 'C-C C-j'で' term-line-mode'に切り替えるだけです。 'C-c C-k'で' term-char-mode'に戻って、(ほとんどの)入力を下位プロセスに直接再開します。代わりに(charモードで) 'C-x'接頭辞の代わりに' C-c'を使用することができます。具体的な例として 'C-c o'を使用してください。これはマニュアルで指摘されています。 'C-h i g(emacs)Term Mode' – phils

+0

あなたは正しいです。それは良いヒントです。実際、 'C-c C-j/C-c C-k'はその状況で非常に便利です。私は通常、「M-:info(emacs)」のようなものを使用して、既知のトピックにジャンプしますが、Chig(emacs)The Topicの組み合わせがより速く、はるかに優れています。コマンドが完了しました。 – AMFVargas

関連する問題