10

シェルモードで、emacs内にscreenまたはtmuxをアタッチしたいと思います。私はしばしば、リモートサーバーの画面内で劣ったプロセスでemacsを実行していることに気付きます。ワークフローをローカルのemacs+TRAMPにシフトできたらいいのにと思います。ただし、永続セッションを再接続する機能は必須です。(このようなワークフローは、R [1]での分析に特に役立ちます)

Mx用語またはMxANSI用語+画面+Rの組み合わせを使用すると、さまざまなグリッチが発生し続け、クラッシュすることもあるため、シェルモードはかなり望ましいです。ただし、エスケープコードとしてレンダリングされたANSIカラーを削除できないようです。 Mxシェルで実行すると画面が表示されます。私が使用するときansi-color-for-comint-mode-on、それらは大丈夫です-しかし、画面が表示されるとすぐに、それはひどい混乱になります。

シェル+スクリーンまたはtmuxでansiカラーを適切に解釈するための一連の条件を誰かが理解しましたか?色を完全に取り除くのはどうですか?..永続的なリモートプロセスを実行し、それらをローカルemacsにアタッチするという点で他の選択肢はありますか?..

[1] http://blog.nguyenvq.com/2010/07/11/using-r-ess-remote-with-screen-in-emacs/

4

2 に答える 2

5

私の知る限り、Screenには、Emacsのシェルモードが提供できない、または提供できない端末の機能が必要です。これは、VT100のような従来の文字端末ではないためです。したがって、問題はカラーコードを削除したり、解釈しようとしたりすることではありません。Screenが正しく機能するために必要な端末機能は他にもあります。

デフォルトでは、私が知る限り、ScreenはEmacsのシェルモードでさえ起動しません(クリアスクリーン機能が必要だと言ってエラーになります)。Webの周りのいくつかの投稿は、これを回避するためにTERM = xtermを設定することを提案しているようですが、ターミナルがXTermの機能を備えていると、Screenをだまして考えさせています。

Emacsのtermモードとansi-termモードは、Screenに必要な端末機能を提供しますが、残念ながら、これらのモードで問題が発生したようです。

代わりに私が提案するのは、「emacsclient -t」コマンド(Emacsの一部)を見てみることです。これにより、Screenで再接続できるのと同じように、既存のEmacsインスタンスに接続されているローカルフレームを開くことができます。以前に作成されたScreenインスタンス。そうすれば、ローカルコンピューターでemacsclientを構成して、TCP経由で永続的なリモートEmacsインスタンスに再接続することができます。

于 2011-03-02T18:16:11.797 に答える
1

私はscreenを使用しませんが、.bashrcからこれを修正できるかもしれません。そこにはたくさんの条件付きコードがあり、xtermウィンドウでは色をオンにしますが、それをサポートしていない他の端末ではオフのままにします。MxシェルはTERM変数をダムに設定するので、それをテストしてそれに応じて色を設定できます。

case "$TERM" in
dumb)
## non-color settings here
;;
xterm)
## color settings here
;;
*)
## default (maybe you want non-color here?)
;;
esac
于 2011-02-08T14:56:01.547 に答える