1

私はしばしば、Emacs のいくつかのインスタンスを異なる GNU 画面ウィンドウで開いています。コンパイルなどのために別々の履歴を与えるにはどうすればよいですか?

問題は:M-x compileあるウィンドウで Emacs を実行して閉じ、別の GNU 画面ウィンドウで別の Emacs を開くと、(当然のことながら) 同じ履歴が表示されます。他のウィンドウ。

別々の GNU 画面ウィンドウで別々のコマンド (など) 履歴を使用するように設定するにはどうすればよいですか?

4

1 に答える 1

0

compilation-modecompile関数は変数を使用しますcompile-history。通常、これは異なる Emacs インスタンス間で共有されません。

例:あなたが:

  • 1 つの画面セッションに移動し、emacs と入力します
  • Mx compile と入力します。
  • 次に、コンパイル コマンドとして「make nothing」と入力します。
  • 次に、別の画面ウィンドウに移動して、emacs と入力します。
  • Mx compile と入力します。
  • その場合、「何もしない」は履歴に残りません。

ある場合は、次のいずれかです。

  • 何らかの形でその変数で履歴の永続性が有効になっています。変数のドキュメントを確認してください
  • または、「emacs」コマンドは実際には emacsclient コマンドです

必要に応じて、異なるコンパイル履歴を保持できることをすべて述べました。

  • 各スクリーンセッションで環境変数を設定する
  • emacsclientコマンドラインでenv varをemacsclientセッションに渡し-eます。
  • 渡された ENV VAR に基づいて新しいリストをバインドできるようにするための関数のアドバイス ( defadvice)compilation-read-commandcompile-history
于 2012-12-03T15:46:03.180 に答える