新しいインスタンスではなく、すでに開いている Emacs で bash コマンドラインからファイルを開くにはどうすればよいでしょうか?

新しいインスタンスではなく、すでに開いている Emacs で bash コマンドラインからファイルを開くにはどうすればよいでしょうか?

新しいインスタンスではなく、すでに開いているEmacsでbashコマンドラインからファイルを開くにはどうすればいいですか?

$ emacs file.txt

既存のEmacsインスタンスでファイルを開く代わりに、新しいEmacsインスタンスを開きます。Mac OS X 10.6.8。および

GNU Emacs 23.4.1 (x86_64-apple-darwin10.8.0, NS apple-appkit-1038.36)

2012-02-27 beta.macosforge.org より

答え1

探しているのは emacs サーバー モードです。次の行を .emacs ファイルに追加します。

(server-start)

次に、emacsclient を使用してファイルを開きます。

emacsclient foobar.txt

見てこれ詳細についてはページをご覧ください。


emacsclientemacs を手動で起動したり、自動起動に設定したりしなくて済むようにするには、 を実行して実行中のサーバーに接続しようとし、接続できない場合は代わりに を実行する小さな関数を作成しますemacs。これをシェルの設定ファイルに追加します (例~/.bashrc: )。

emacs(){ 
    emacsclient "$@" 2>/dev/null || /usr/bin/emacs "$@" 
}

これで、実行するだけでemacs fileサーバーが起動するか、既存のインスタンスに接続されます。

答え2

残念ながら、次の解決策をどこで見つけたのか思い出せません。申し訳ありません。ただし、私にとっては最適に機能したので、ここに追加します。

.emacsemacs サーバーが起動していることを確認してください。

(server-start)

次に、.bashrc関数を定義します。

function run_emacs
{
/usr/bin/emacsclient "$1" &
}

環境変数を設定します。

export EDITOR=emacsclient
export ALTERNATE_EDITOR=emacs

最後に、エイリアスを定義します。

alias emacs='run_emacs'

関連情報