我可以恢复现有的 vim 进程吗?

我可以恢复现有的 vim 进程吗?

昨天下班时,我打开了 vim,里面有我正在处理的文件。今天我在家工作,所以我用 VPN 登陆,当我去编辑这些文件时,我收到警告,说另一个 vim 会话正在打开这些文件。

我知道我可以强制注销我的其他用户,但这会终止现有的 vim 会话。思考我的所有更改都将保存在.swp文件中。

相反,我是否可以利用现有的 vim 会话并使用第二次登录打开它?这样它肯定会保留我的所有更改,而我也不必再次打开所有相同的选项卡。

答案1

您可以终止 vim(但不要使用 -9),所有更改都将保存在文件中.swp。然后启动新的 vim 并使用恢复。

答案2

screen使用或作为替代方案怎么样tmux?这样,您可以在完成后断开屏幕会话,然后稍后登录(可能从另一台机器)并重新连接。

答案3

雷普特:用于获取现有正在运行的程序并将其附加到新终端的实用程序

来自男人页面:“reptyr 是一个实用程序,用于获取现有的正在运行的程序并将其附加到新终端。通过 ssh 启动了一个长时间运行的进程,但必须离开并且不想中断它?只需启动一个屏幕,使用 reptyr 抓取它,然后终止 ssh 会话并返回主页。”

答案4

您无法接管从另一个终端启动的进程。如果您在 screen 中启动了 vim,那么您就可以断开 screen 会话,然后从另一个终端(包括通过 ssh 连接的外部终端)重新连接。

然后还有retty,但它并不适用于所有硬件平台,并且处于体验阶段 - 基本上,使用风险自负。

:mks另一个选择是时不时地执行(make session);如果您随后终止 vim 并从另一个终端启动它,您可以简单地获取Session.vimmks 命令创建的文件(或使用 启动 vim vim -S Session.vim)并恢复您的会话(不过您可能需要响应一些恢复提示)。

相关内容