web-dev-qa-db-ja.com

別のウィンドウなしでターミナルエミュレータで「emacs」を実行するにはどうすればよいですか?

私はVimからEmacsに切り替えたいと思っていますが、私を遠ざけているのは、Xで実行するとEmacsが独自のウィンドウを開くことです。Xで実行しない場合と同じ動作をEmacsで取得できますか?つまり、Emacsが起動した端末と同じ端末でセッションを開始したいのです。

質問が明確でない場合はお知らせください。少し早いですがお礼を!

16
Amit Saha

私はemacsの専門家ではありませんが、これでうまくいきました。

emacs -nw
34

Emacsをemacs --daemonとして開始し、次にemacsclient -tを使用してファイルを編集することをお勧めします。これにより、Emacsがバックグラウンドでロードされたままになるため、viのようにEmacsを使用できます。編集セッションは即座に開始され、C-x C-cを介して「終了」すると、現在の接続が閉じられます。とてもいいです。

16
jrockway

あなたの質問には回答しましたが、これは通常のユーザーがemacsを使用する方法とは違うと思います。 vimとは異なり、emacsの起動時間は一般に長く、とにかく複数のオープンバッファーを使用して常に実行される傾向があります。したがって、端末でemacsを使って何かを実行したい場合は、emacsclient -nwを呼び出します(emacsサーバーが起動していると想定)。詳細については、 EmacsClientの使用を開始する方法 を参照してください。

5
Raja

Bashを使用する場合は、いつでも.bashrcに以下を追加できます。

エイリアスemacs = "emacs -nw"

それは私に多くのタイピングを節約しました(そして私がスイッチをタイプするのを忘れたときののろい)。

2
Dick Kennedy

Dick KennyとAlberto Zaccagniによる上記の回答を組み合わせると、.bashrcで使用する次の構成が得られます。

alias emacs='emacsclient -nw -c -a ""'

これは、実行中のemacsデーモンへの接続を試みます。何も実行されていない場合は、新しいものを起動し、現在のターミナルウィンドウを使用して接続します。

ドキュメントから:

-a EDITOR, --alternate-editor=EDITOR
        Editor to fallback to if the server is not running
        If EDITOR is the empty string, start Emacs in daemon
        mode and try connecting again

-nw, -t, --tty      Open a new Emacs frame on the current terminal

-c, --create-frame  Create a new frame instead of trying to 
                    use the current Emacs frame
1