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)版权协议,转载请附上原文出处链接和本声明。

分享到:

评论