我想在外壳模式下将屏幕或tmux连接到emacs中。我经常发现自己在远程服务器上的屏幕内部运行具有较低过程的Emacs;如果我可以将工作流程转移到本地Emacs + Tramp,那就太好了;但是,必须重新持续会议的能力是必须的。 (此类工作流程对于R [1]中的分析特别有用)

Shell-Mode是相当理想的,因为我在使用MX术语或MX ANSI-Term + Screen + R的组合时不断遇到其他故障,甚至崩溃。但是,我似乎无法摆脱ANSI有色人种的色彩,使ANSI彩色呈现为逃脱代码在MX外壳下运行时屏幕。当我使用时 ansi-color-for-comint-mode-on, ,它们很好 - 但是一旦屏幕亮起,这就变得一团糟。

是否有人想出了用Shell + Screen或Tmux正确解释ANSI颜色的条件集?完全摆脱颜色呢?

[1] http://blog.nguyenvq.com/2010/07/11/ususe-r-ses-emote-with-screen-in-in-emacs/

有帮助吗?

解决方案

据我所知,屏幕需要您终端的功能,即Emacs的Shell模式根本无法也无法提供,仅仅是因为它不是传统的字符终端,例如VT100。因此,问题不是要摆脱或试图解释颜色代码,而是屏幕需要正确运行的终端功能。

毫无疑问,否则屏幕甚至都不以Emacs的外壳模式启动(据我所知(错误地说它需要清晰的屏幕能力)。网络周围的一些帖子似乎建议设置术语= x term以解决此问题,但是它只是愚弄了屏幕,以为终端具有XTERM的功能,但它没有。

EMAC的术语和ANSI-TERM模式将提供屏幕所需的终端功能,但不幸的是,您似乎对这些模式遇到了麻烦。

我建议的是要查看“ emacsclient -t”命令(emacs的一部分),它使您可以以类似的方式打开与现有emacs实例连接的本地框架,因为屏幕允许您重新连接到先前创建的屏幕实例。这样,您也许可以在本地计算机上配置EmacSclient,以通过TCP重新连接到持久的远程Emacs实例。

其他提示

我不使用屏幕,但是也许您可以从.bashrc解决此问题。我在其中有一堆有条件的代码,为Xterm Windows打开颜色,但将其保留给其他不支持它的终端。 MX Shell将术语变量设置为愚蠢,因此您可以对其进行测试并相应地设置颜色。

case "$TERM" in
dumb)
## non-color settings here
;;
xterm)
## color settings here
;;
*)
## default (maybe you want non-color here?)
;;
esac
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top