小智 15
没有办法vim提前知道它的祖父进程(终端)被杀死了,所以它通常也会因为杀死父进程而被杀死。
但是,在大多数默认设置中,vim会创建一个.swp以当前正在编辑的文件命名的文件;例如MyPrecious.java.swp。此文件应包含MyPrecious.java该vim进程被终止之前的文件快照。除非您vim专门设置将这些.swp文件放在其他目录中,否则它们应该与编辑的文件位于同一目录中,并且您可以轻松恢复编辑工作。
请注意,其中一些文件以点开头,.因此除非您ls -a用来列出目录中的文件,否则它们是不可见的。
这里是Vim的知道终端已关闭的方式:该SIGHUP信号。
当您关闭终端时,SIGHUP信号被发送到控制进程,通常是您的外壳。然后你的 shell 应该退出,导致 Vim 被发送SIGHUP信号。默认情况下,进程在收到SIGHUP信号时简单地终止。
我不熟悉 Vim,但也许它可以配置为在SIGHUP收到信号时在退出之前保存所有工作。如果没有,也许你可以设置一个外壳trap上SIGHUP,或许在组合与运行中的Vim nohup,执行一个特殊的命令,不知怎的,导致Vim时端子闭合更正常退出。