我刚刚了解了标签,这意味着我可以通过

:tabe some/file
:tabe yet/another/file
:tabe foo


打开它们,并通过gt(激活右一个)和gT(激活左一个)圈出。

但是,当我通过quit-all :qa关闭我的vim实例时,我所有的标签都消失了。再次进入vim时如何恢复它们?

#1 楼

在vim中,有一项功能可让您将当前会话保存到vimscript文件中。可以使用:mksession命令来完成。这是vim文档中给出的命令的摘要:

:mks[ession][!] [file]
Write a Vim script that restores the current editing session.
When [!] is included an existing file is overwritten.
When [file] is omitted "Session.vim" is used.


然后您可以通过运行vim -S Session.vim加载保存的会话。 -S选项将获取给定的文件并在vim启动之前将其获取。 (请参阅:h :source)此外,如果您从-S选项中省略了文件名,它将尝试在当前目录中找到名为Session.vim的文件。 (仅当-S作为最后一个参数给出并且文件存在时)。

还有一个选项可以让您指定会话文件中保存的内容,称为'sessionoptions'。此选项是一个用逗号分隔的单词列表,每个单词都可以通过:mksession命令来保存或恢复某些内容。以下是此选项中可能出现的单词的列表以及每个单词的保存内容:



blank-空窗口和已卸载的缓冲区,而不仅仅是Windows中的缓冲区/> buffers-以大写字母开头并包含至少一个小写字母的全局变量。仅存储字符串和数字类型。

curdir-帮助窗口

folds-窗口或缓冲区本地的选项和映射(本地选项不是全局值)

globals-所有选项和映射(本地选项的全局值)

help-Vim窗口的大小:“行”和“列”

localoptions-会话文件所在的目录将成为当前目录(对通过网络从不同系统访问的项目有用)

options-用反斜杠替换文件名中的反斜杠

resize-所有标签页;如果没有此选项,则仅还原当前的选项卡页,因此即使在Windows或DOS上,您也可以为每个选项卡页分别建立会话

sesdir-Vim整个窗口的位置

slash-窗口大小

例如,此选项的默认值如下:

sessionoptions=blank,buffers,curdir,folds,help,options,tabpages,winsize


有关这些主题的更多信息,请参见tabpagesunix

评论


不错的故障!每当我恢复会话时,我都会丢失NERDTree窗口-这并不重要,但出于兴趣而已-您知道是否有可能使用您描述的sessionoptions恢复NERDTree?

–the_velour_fog
15年11月27日在18:09

我不知道是否有一种还原Nerdtree窗口的方法,因为我不使用该插件,但这可能是因为它对其缓冲区s有特殊的处理

–EvergreenTree
15年11月27日在20:18

有自动化的推荐方法吗?在关闭vim之前,我并不总是有机会手动创建会话。每次我回到机器时,手动重新打开十几个选项卡都比否定vim具有“轻量级”优势的时间优势,而不是成熟的IDE自动启动过程自动记住这些事情的优势。

– Alex Jansen
17年2月28日在19:53

它不是完全自动的,但是tpope的“ obsession”插件对我来说很好用:github.com/tpope/vim-obsession

–EvergreenTree
18年4月5日在13:07

#2 楼

您可以保存vim会话及其所有设置,包括使用

:mksession ~/session.vim


打开选项卡,并使用

:source ~/session.vim

加载它。
如果您不想存储颜色格式和字体大小之类的选项,则可以禁用将其与此条目一起存储在vimrc中。

set sessionoptions-=options