我安装了sessionman,它运行正常.但是当我重新加载X会话两次(注销/登录,重启等)时会丢失会话,因为当KDE恢复Gvim时,它不会自动加载会话,而只会加载最后一个文件,然后在下次重新加载时将其保存在最后一个会话名称下.如果我没有运行SessionOpen,那么在下次重新加载时,我的上一个会话将丢失.
我已经配置了会话自动保存.如果Gvim也可以自动加载上一个会话,那将是很好的.但是,即使手动,此功能也不适用于我.当我重新启动Gvim时,SessionShowLast打印"上一个会话未定义,当前会话是""".
sessionman文档说:"打开的会话的名称保存在g:LAST_SESSION变量中,如果'viminfo'选项包含'!',则保存在viminfo文件中.但是我没有找到任何明确的解释什么是"viminfo选项",它应该包含'!',以及如何设置它.另外我不确定如何从vimrc执行SessionOpenLast.
如果我试图解决问题的方式是错误的,那么请纠正我.
viminfo是一个变量,描述了应该在viminfo文件中存储哪些数据.
有关完整的详细信息,请运行:help 'viminfo'(注意引号)vim:
! When included, save and restore global variables that start
with an uppercase letter, and don't contain a lowercase
letter. Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis"
and "_K_L_M" are not. Nested List and Dict items may not be
read back correctly, you end up with a string representation
instead.
Run Code Online (Sandbox Code Playgroud)
用:set viminfo看你的当前值viminfo设置.在您的~/.vimrc文件中修改它.
set viminfo='100,<500,s10,h,!
Run Code Online (Sandbox Code Playgroud)
由于vimrc是插件加载之前,加入SessionOpenLast到vimrc将无法正常工作.要解决此问题,请创建一个自动命令:
autocmd VimEnter * SessionOpenLast
Run Code Online (Sandbox Code Playgroud)