5

emacsデーモンがすでに実行されている場合はemacsclientを実行し、それ以外の場合はemacsを開始するエイリアスがbashにあります。ただし、emacs の新しいインスタンスが起動された場合、バックグラウンドで実行できるので、その端末を引き続き使用できます (または閉じます)。私のbashプロファイルには、

alias ec="/usr/bin/emacsclient.emacs-snapshot -n -c -a /usr/bin/emacs-snapshot"

そして、私は端末にいてタイプするかもしれません

$ ec newfile

emacsデーモンがまだ実行されていない場合、上記の行に同等のことをさせるために作成できるエイリアスはありますか

$ emacs newfile &

それ以外の

$ emacs newfile

(私は Linux Ubuntu を使用しており、emacs-snapshot は別名「emacs」に割り当てられていることにも言及する必要があります)。

どうもありがとう!

4

2 に答える 2

5

直接呼び出す代わりに、バックグラウンドで呼び出してから返す/usr/bin/emacs-snapshotスクリプトを作成します。/usr/bin/emacs-snapshot

#!/bin/sh
case $# in
  0) /usr/bin/emacs-snapshot &
  *) /usr/bin/emacs-snapshot "$@" &
esac

次に、通常の方法でスクリプトを呼び出します。バックグラウンドで emacs プロセスを起動し、すぐに戻ります。

凝ったものにしたい場合は/bin/bash、 とdisownの後のプロセスを使用できますesac(get the pid with $!)。

于 2010-02-17T03:58:31.943 に答える
3

これはあなたの質問に対する直接的な答えではありませんが、これは「emacs デーモンを開始するか、emacsclient を実行する」ためのよりエレガントな方法です。次のエイリアスを作成します: alias emacs=emacsclient -c -a "". 現在man emacsclient:

-a, --alternate-editor=EDITOR ... EDITOR の値が空の文字列の場合、`emacs --daemon' を実行して Emacs をデーモン モードで起動し、接続を試みます。

于 2012-05-24T22:01:30.153 に答える