会话信息,将保存所有编辑窗口和全局设置。通过恢复会话,可以快速切换回之前工作环境。可以认为,会话是viminfo的扩展补充,viminfo文件中保存了会话所需要使用的具体设置信息。
如下图所示,我在编辑本文档的同时,打开了帮助文件和命令终端。首先,将当前编辑状态保存到会话文件;稍后,只需要恢复会话,就可以继续使用之前的窗口布局进行编辑了,而省去了手动打开多个窗口的繁琐。
使用以下命令,将保存会话信息至当前目录下,以“Session.vim”命名的文件:
:mksession
如果已经存在同名的会话文件,那么需要在命令中使用“!”参数,进行强制覆盖:
:mks!
也可以在命令中,指定会话信息文件的位置:
:mksession ~/mysession.vim
在启动Vim时,通过指定“-S”参数,可以恢复之前保存的编辑会话:
$ vim -S Session.vim
在Vim中使用以下命令,也可以恢复会话信息:
:source Session.vim
使用以下命令,可以查看关于会话信息的帮助文件:
:help session
会话选项sessionoptions,用于指定保存会话的内容,默认值如下:
:set sessionoptions=blank,buffers,curdir,folds,help,options,tabpages,winsize,terminal
sessionoptions选项是一组使用逗号分隔的字符串,包含以下参数:
blank
恢复编辑无名缓冲区的窗口;
buffers
恢复所有缓冲区(包括隐藏和未载入的缓冲区);
curdir
恢复当前目录;
folds
恢复折叠;
globals
恢复以大写字母开始并至少包含一个小写字母的全局变量;
help
恢复帮助窗口;
localoptions
恢复(限定于缓冲区内)本地选项;
options
恢复全局映射和选项;
resize
恢复以行列指定的窗口大小;
sesdir
设置当前目录为会话文件所在的位置;
salsh
在文件名中使用salsh(/),来代替backslah(\);
tabpages
恢复所有标签页;
terminal
恢复终端窗口;
unix
使用Unix模式的行尾标志(<NL>);
winpos
恢复 GUI Vim 的窗口位置;
winsize
恢复窗口尺寸(相对于屏幕大小);
使用以下命令,可以查看关于会话选项的帮助信息:
:help 'sessionoptions'
:mksession | 保存会话 |
:source Session.vim | 恢复会话 |
:set sessionoptions | 设置会话选项 |