5

我在 Windows 客户端和 Linux 服务器中使用 X-Server 远程使用 Emacs。我注意到我可以使用 ctrl-z 停止它,然后键入fg 1让它再次工作。有什么方法可以让它在我所在的机器上停止,然后登录到另一台机器并从我离开的地方开始?当我开始一个新的 ssh 会话时,emacs 作业没有与我的终端关联。一定有办法“偷”它。

此外,也许有一个 Emacs 功能可以做基本相同的事情。但是,我认为关闭和重新打开我所有的文件和缓冲区需要相当长的时间。

4

3 回答 3

6

扩展使用emacsclient的想法,您可以看看有人做了什么来解决从不同的机器编辑文件的问题,而不是他开始运行 Emacs 的地方

从 Emacs 23 开始,您可以使用该选项在终端窗口中运行 emacsclient 。-nw

您可能想尝试的其他解决方案是使用:

  1. gnu屏幕
  2. 虚拟网络

多年来,我使用 screen 从听起来像您的使用模型的虚拟终端“附加”和“分离”。如果你有能力使用图形...... vnc 真的很棒,只需在 vnc 会话中完成你的工作并连接到任何机器。

您的最后一个想法已经由桌面包(与 Emacs 捆绑在一起)实现。查看会话管理的 wiki 页面,其中包括桌面的其他替代品,以及用于延迟加载文件的桌面附加组件。

于 2010-02-25T01:26:55.350 回答
2

您可以将 emacs 作为服务器运行,并使用emacsclient连接到它。您可以通过 ttys 或 X11 打开到同一个 emacs 服务器的多个连接。

执行此操作时,CX CC 将关闭您的连接,并使服务器保持运行。

通过调用 emacs 来执行此操作的简单方法如下。如果一个正在运行,这将连接到服务器,或者创建一个。

emacsclient --alternate-editor="" -c
于 2010-02-25T00:50:55.820 回答
1

有时我会在工作中,不得不跑出去让我的 Emacs 会话保持原样。稍后,我将在同一台机器上打开一个 Emacs 实例(通常使用远程 SSH),发现我在 Emacs 中打开了文件。现在好消息。Emacs 允许您使用M-x recover-this-file. 如果您可以提前计划,我推荐 Trey 的解决方案之一。如果没有,您可以使用此恢复文件技术来保持进度。

于 2010-02-25T06:46:34.963 回答