Vm使用viminfo选项,来定义如何保存会话(session)信息,也就是保存Vim的操作记录和状态信息,以用于重启Vim后能恢复之前的操作状态。
viminfo文件
viminfo文件默认存储在以下位置:
- Linux和Mac:$HOME/.viminfo,例如:~/.viminfo
- Windows:$HOME\_viminfo,例如:C:\Users\yiqyuan\_viminfo
viminfo文件主要保存以下内容:
- Command Line History(命令行历史纪录)
- Search String History(搜索历史纪录)
- Expression History(表达式历史纪录)
- Input Line History(输入历史记录)
- Debug Line History(调试历史纪录)
- Registers(寄存器)
- File marks(标记)
- Jumplist(跳转)
- History of marks within files(文件内标记)
Vim在退出时,会将上述信息存放到viminfo文件中;在启动时,将会自动读取viminfo信息文件。
使用以下命令,可以手动创建一个viminfo文件:
:wviminfo file_name
使用以下命令,可以重新读去viminfo文件:
:rviminfo
使用以下命令,可以查看关于viminfo文件的帮助信息:
:help viminfo
viminfo选项
viminfo选项可以指定保存哪些内容,以及在何处的viminfo文件中保存这些信息。viminfo选项是一组使用逗号分隔的字符串;其中每个参数,是以单个字符开头的数值或字符串值。
Windows下的默认值为:
set viminfo='100,<50,s10,h,rA:,rB:
Linux和Mac下的默认值为:
set viminfo='100,<50,s10,h
选项 | 描述 | 帮助信息 |
---|---|---|
! | 如果包含,表示保存和恢复以大写字母开头并且不包含小写字母的全局变量。例如,保存 “KEEPTHIS” 和 “K_L_M”,但不保存 “KeepThis” 和”_K_L_M”。 | :help viminfo-! |
" | 设置每个寄存器最多保存的行数。是“<”选项的旧称。需要在“"”之前加上转义反斜杠,否则将会被识别为注释的开始。 | :help viminfo-" |
% | 如果包含,表示保存和恢复文件缓冲区列表;如果后跟数值,该数值指定保存缓冲区的最大数目;如果不包含数值,则保存所有缓冲区。如果Vim启动时指定文件名参数,则缓冲区列表不予恢复。如果Vim启动时没有指定文件名参数,则缓冲区列表从viminfo文件里恢复。没有文件名的缓冲区和帮助文件的缓冲区不会写入viminfo文件。不保存quickfix、unlisted、unnamed和在可移动介质上的缓冲区。 | :help viminfo-% |
' | 保存指定数目文件中的标记。如果viminfo选项非空,则必须包含此参数。包含本项目意味着jumplist和changelist也保存在viminfo文件里。 | :help viminfo-' |
/ | 保存搜索历史的最大数目。如果此值非零,那么将保存搜索和替代模式。如果不包含,则使用history选项的值。 | :help viminfo-/ |
: | 保存命令行历史的最大数目。如果不包含,则使用history选项的值。 | :help viminfo-: |
< | 每个寄存器保存的最大行数。如果为零,表示不保存寄存器。如果不包含,则表示保存所有的行。“"”是本项目的旧称。 | :help viminfo-< |
@ | 保存输入行历史的最大数目。如果不包含,则使用history选项的值。 | :help viminfo-@ |
c | 如果包含,则使用viminfo-encoding选项指定的编码格式写入viminfo文件。 | :help viminfo-c |
f | 是否保存文件位置标记。如果为零,不保存文件位置标记 (0~9,A~Z)。如果不包含或者非零值,则保存位置标记。 | :help viminfo-f |
h | 载入viminfo文件时,关闭高亮效果。如果不包含,则取决于在最近搜索命令之后是否使用过:nohlsearch命令。 | :help viminfo-h |
n | 指定viminfo文件的名称。该名称必须紧随在字母“n”之后,并且必须为最后一个选项。如果启动Vim时指定了-i参数,那么此文件名将覆盖viminfo选项指定的文件名。文件名中的环境变量,将在文件打开时被扩展。 | :help viminfo-n |
r | 不保存指定可移动介质或路径内的文件的相关信息。可以设置多个路径参数。例如在Windows上,你可以用“rA:,rB:”指定软驱或U盘。也可以在Linux上,使用“r/tmp”来屏蔽临时文件。此选项将忽略大小写。每个参数的最大长度为50个字符。 | :help viminfo-r |
s | 如果为零,将不保存寄存器。缺省值“s10”,将忽略超过10 Kbyte文本的寄存器。 | :help viminfo-s |
在单独指定viminfo文件的位置时,为了不覆盖viminfo选项的当前值,通常会在设置命令中使用“+=”操作符:
:set viminfo+=n$LOCALAPPDATA/_viminfo
:set viminfo+=nC:\\_viminfo
您可以参考以下命令,在vimrc配置文件中,定义viminfo选项:
set viminfo=\"50,'1000,h,f1,rA:,r$TEMP:,r$TMP:,r$TMPDIR:,:500,!,n$VIM/_viminfo
请注意:
- 请不要将“<”设置过大,因为此选项将影响保存至viminfo文件中的信息量。在Vim启动时,如果读取尺寸过大的viminfo文件,将影响Vim启动速度;
- 请在vimrc文件开头,首先定义
:set nocompatible
选项。
使用以下命令,可以查看viminfo选项的更多信息:
:help 'viminfo'
:wviminfo | 写入viminfo文件 |
:rviminfo | 读取viminfo文件 |
:set viminfo | 设置viminfo选项 |
没有评论:
发表评论