我已经在 vim 中打开了许多文件,并且在那里使用 ctags 编辑和跟踪程序流,我不想在下次重启时丢失所有这些信息,我不能让我的系统运行几周或几个月。
有什么办法可以保存当前终端状态或/和 vim 堆栈状态?
这是类似的问题
- 如何在终端中记住多个选项卡的会话?(类似 FF 会话管理器)我找到了。但没有答案
- 保存多个 gnome-terminal 布局?这仅保存当前工作目录和标签数量
答案1
读:help :mksession
。
:mksession /path/to/sessionfile
此命令会编写一个脚本,稍后您可以使用它来运行
:source /path/to/sessionfile
当你离开并使用 启动 Vim 时,你可以自动运行这些命令autocmd
。阅读Vim wiki 上的这个页面寻找想法。
保存终端会话是另一个问题。tmux 和 screen 都允许你断开/重新连接会话,但我承认我不知道它们是否能在重启后继续存在。
编辑
这个答案解释如何编写 tmux 会话脚本并在稍后恢复。类似的事情可能适用于 screen。
如果您不使用 tmux 或 screen,您只能使用终端仿真器的功能。
答案2
我不得不解决同样的问题 - 不幸的是许多应用程序甚至没有办法以受控的方式保存其状态,更不用说在系统关闭时终止时了。
我当前的解决方案:
休眠覆盖了我所有笔记本电脑和台式电脑的 99% 的情况。我通常可以关闭电脑,开机时一切都会恢复 - 它在我的系统上通常比 Suspend-to-RAM 稳定得多,因为它不依赖于 BIOS 做正确的事情 (TM)。
休眠的唯一问题是它在启动到不同的内核时不能使用,尽管我并不指望大多数人会经常更新他们的内核……
脚本:我没有尝试让我的应用程序保存其状态,而是选择创建一些要启动的脚本
gnome-terminal
,并screen
预设一组适合我的初始选项卡/屏幕和相关程序。基本上,我几乎省去了登录桌面后启动标准终端、文件浏览器等 10 分钟的麻烦。
考虑到大多数应用程序的状态,尤其是控制台中的状态,我认为没有什么比这更好了。任何更多的事情都必须根据每个应用程序的具体情况进行处理。例如,某些应用程序(如 Eclipse)可以配置为定期保存其状态。