作为屏幕/tmux替代方案的emacs-从终端分离

作为屏幕/tmux替代方案的emacs-从终端分离,emacs,gnu-screen,tmux,Emacs,Gnu Screen,Tmux,众所周知,emacs可以用作终端仿真器(当它本身在终端仿真器中运行时),从而使它成为更传统的终端对终端方法(如tmux或screen的有效替代方法。然而,有一件事可以很容易地用后者来完成,到目前为止,我在emacs的术语中还没有找到其他替代方法 tmux和screen都可以从终端分离,并且在其窗口中运行的所有任务继续在后台运行。默认情况下,使用tmux中的C-b,d和屏幕中的C-a,d完成。稍后,我可以通过运行类似于tmux-attach或screen-r的操作,返回(重新连接)到已分离的终端。

众所周知,emacs可以用作终端仿真器(当它本身在终端仿真器中运行时),从而使它成为更传统的终端对终端方法(如
tmux
screen
的有效替代方法。然而,有一件事可以很容易地用后者来完成,到目前为止,我在emacs的
术语
中还没有找到其他替代方法

tmux
screen
都可以从终端分离,并且在其窗口中运行的所有任务继续在后台运行。默认情况下,使用
tmux
中的C-b,d和
屏幕中的C-a,d完成。稍后,我可以通过运行类似于
tmux-attach
screen-r
的操作,返回(重新连接)到已分离的终端。此外,在这两个终端多路复用器中运行的会话都是持久性的-即,如果我连接到某个远程终端,并且连接失败,我可以重新连接并重新连接到终端,而不会丢失我的任何工作-这对于偶尔断开ssh连接的故障网络链接非常有帮助

emacs有类似的功能吗?基本上,我希望能够:

  • 从emacs分离,并让它在后台运行,所有子进程在
    term
    缓冲区中运行
  • 稍后重新连接到它,并发现我的所有进程都在运行
  • 接收到信号后,EMAC自动从终端分离
使用emacs守护程序:

$ emacs --daemon
然后只需启动一个新的框架,相当于
屏幕-x

$ emacsclient -t

至少,您可以在screen/tmux中运行emacs来实现这一点。好吧,这与我的尝试正好相反。我想使用emacs的键映射和窗口功能,而不是screen/tmux提供的非常接近的替代方案。但是,在屏幕内运行emacs时,您可以同时获得其键映射和窗口功能?!但我猜您必须分离完整的Emacs实例,从而在屏幕实例中保留多个Emacs,而您似乎要寻找的是一个单独的运行实例,您可以从中分离某些进程,同时保持实际的Emacs运行,对吗?谢谢!它看起来真的像一个解决方案:)我相信它是抗SIGHUP的,不是吗?不幸的是,它没有像以前那样设置您的窗口(尽管就我所见,screen也没有;尽管tmux有)。但是,您可以用emacs保存您的窗口配置,然后恢复它们。请参阅:您还可以启动多个Emacs服务器,命名它们,并按名称选择要连接的服务器。我在每个项目启动中都有这样的设置:“(设置变量‘服务器名称’)(服务器启动)”然后我可以通过:ssh-Y远程连接lukstafi@workstation-f emacsclient-s--eval'(在显示时生成帧\“$display\”)