众所周知,emacs可以用作终端仿真器(当它本身在终端仿真器中运行时),从而使其成为更传统的终端终端方法(如tmux或屏幕)的有效替代方案.然而,有一件事情可以轻而易举地与后者相提并论,到目前为止,我已经找不到emacs这个术语的替代方法.
tmux和屏幕都可以从终端分离,并且在其窗口中运行的所有任务在后台继续运行.在tmux中使用C-b,d,在默认情况下,在屏幕中使用C-a.后来,我可以通过运行像tmux attach或screen -r这样的东西返回(重新连接)到我已经脱离的终端.此外,在这两个终端多路复用器中运行的会话是持久的 – 即如果我连接到一些远程终端并且连接失败,我可以重新连接并重新连接到终端,而不会丢失任何我的工作 – 它真的有助于网络故障链接偶尔会断开ssh连接.
有没有可用于emacs的东西?基本上,我想要能够:
>离开emacs并将其运行在后台,所有的子进程都运行在完整的缓冲区中.
>稍后再重新安装,找到我所有的进程.
>接收SIGHUP时,终端自动脱离emacs.
解决方法
使用emacs守护进程:
$emacs --daemon
然后只需启动一个新的框架,相当于屏幕-x:
$emacsclient -t