Learn Vim 第二十章:视图、会话和 Viminfo
2026-05-12
Eric Wong
本文翻译自 iggredible/Learn-Vim,部分内容有增改。
当您做了一段时间的项目后,您可能会发现这个项目逐渐形成了自己的设置、折叠、缓冲区、布局等。问题是,关闭 Vim 后,所有的这些更改都会丢失。本章中,您将学习如何使用 视图、会话 和 Viminfo 来保存项目的”快照”。
视图
视图是这三个部分中的最小子集,它是单个窗口相关设置的集合。如果您长时间在一个窗口上工作,并且想要保留其映射和折叠,您可以使用视图。
配置视图属性
:set viewoptions?
默认显示 viewoptions=folds,cursor,curdir。添加 localoptions:
:set viewoptions+=localoptions
保存和加载视图
:mkview " 保存视图
:loadview " 加载视图
Vim 允许您保存 9 个编号的视图(1-9):
:mkview 1
:loadview 1
自动创建视图
autocmd BufWinLeave *.txt mkview
autocmd BufWinEnter *.txt silent loadview
会话
如果说视图保存了某个窗口的设置,那么会话则保存了所有窗口(包括布局)的信息。
创建和加载会话
:mksession " 保存会话到 Session.vim
:source Session.vim " 加载会话
从终端加载:
vim -S Session.vim
配置会话属性
:set sessionoptions?
默认值:blank,buffers,curdir,folds,help,tabpages,winsize,terminal
可存储的属性:
blank存储空窗口buffers存储缓冲区folds存储折叠globals存储全局变量options存储选项和映射winsize存储窗口大小tabpages存储选项卡
Viminfo
Viminfo 存储着:
- 命令行历史记录。
- 字符串搜索历史记录。
- 输入行历史记录。
- 非空寄存器的内容。
- 多个文件的标记。
- 文件标记,它指向文件中的位置。
- 上次搜索 / 替换模式。
- 缓冲区列表。
- 全局变量。
通常,会话存储”外部”属性,Viminfo 存储”内部”属性。每个项目可以有一个会话文件,而 Viminfo 通常每台计算机只使用一个。
读写 Viminfo
:wv ~/.viminfo_extra " 写入
:rv ~/.viminfo_extra " 读取
使用不同的 Viminfo 文件来启动 Vim:
vim -i viminfo_extra
配置 Viminfo 属性
:set viminfo?
默认值 !,'100,<50,s10,h 分解如下:
!保存以大写字母开头、却不包含小写字母的全局变量。'100保存最近 100 个文件的本地标记。<50每个寄存器最多保存 50 行。s10为寄存器设置大小限制(10kb)。h禁用高亮显示。
聪明地使用视图、会话和 Viminfo
对于微型项目,可以使用视图;对于大型项目,可以使用会话。为您的编辑风格创建属于您自己的视图、会话和 Viminfo。如果您要换台计算机使用 Vim,只需加载您的设置,立刻就会感到就像在家里的工作环境一样!
版权声明:本文为原创文章,遵循 署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)版权协议,转载请附上原文出处链接和本声明。
分享到: