新しいインスタンスではなく、すでに開いている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
見てこれ詳細についてはページをご覧ください。
emacsclient
emacs を手動で起動したり、自動起動に設定したりしなくて済むようにするには、 を実行して実行中のサーバーに接続しようとし、接続できない場合は代わりに を実行する小さな関数を作成しますemacs
。これをシェルの設定ファイルに追加します (例~/.bashrc
: )。
emacs(){
emacsclient "$@" 2>/dev/null || /usr/bin/emacs "$@"
}
これで、実行するだけでemacs file
サーバーが起動するか、既存のインスタンスに接続されます。
答え2
残念ながら、次の解決策をどこで見つけたのか思い出せません。申し訳ありません。ただし、私にとっては最適に機能したので、ここに追加します。
.emacs
emacs サーバーが起動していることを確認してください。
(server-start)
次に、.bashrc
関数を定義します。
function run_emacs
{
/usr/bin/emacsclient "$1" &
}
環境変数を設定します。
export EDITOR=emacsclient
export ALTERNATE_EDITOR=emacs
最後に、エイリアスを定義します。
alias emacs='run_emacs'