3

最近、メインのエディターとして Emacs を使い始めました。気になる点が 1 つあります。シェルで Emacs を起動すると、新しいウィンドウで Emacs が起動します。シェルから呼び出された場合はシェルで起動し、ワークスペースから呼び出された場合は新しいウィンドウで起動します。

これは、私が見逃している構成によって達成できますか、それともLispのようなものですか?

Xfce と fish-shell で Manjaro を使用しています ( http://fishshell.com/ )

よろしく、ロビン

4

2 に答える 2

4

エイリアスの解決策がありますが、私が遭遇した pb は、時々 Ctrl-z で emacs をスリープ状態にしてから、emacs セッションを起動したことを忘れて、エイリアスをもう一度使用すると、端末に 2 つの emacs が表示されることです。それは私を悩ませます。そこで、emacs が既に実行されているかどうかをチェックする関数を使用します。

cemacs () {
if (ps|grep emacs); then
   echo  "Hey, emacs is already running";       
   fg %emacs
else 
    emacs -nw $@
fi
}

ショートカット

スリープ中の emacs を復活させるための便利なショートカットを定義しました。

bind -x '"\C-x\C-e":fg %emacs' 

Emacs サーバー

それが私がかなり長い間使ってきたもので、完璧ではありません。Emacsサーバーを使用しない限り、通常のemacsを起動してから関数を起動できません: http://wikemacs.org/index.php/Emacs_server

emacsclient -t へのエイリアスを作成するだけです。

とシェルモード

しかし今、私は emacs 内で端末を使用することを非常に好みます (シェルのバッファー内を移動したり、マウスを使わずにコピー アンド ペーストしたり、文字列を検索したり、出力の先頭に移動したり、ファイルを操作したりするのはとても便利です) dired で、…)。

于 2013-08-23T15:53:49.427 に答える
1

良いアイデア !

.bashrc を更新しました:

edit_file_in_emacs_console() {
    emacsclient -t $@ || emacs -q -nw $@
}

if [ "$PS1" ]; then
    alias emacs=edit_file_in_emacs_console
fi

そのため、利用可能な場合は現在の emacs サーバーを使用するか、起動を高速化するために単純な emacs コンソール (-q) を使用します。

于 2013-08-30T15:22:13.833 に答える