Vim会将命令历史记录,保存在viminfo文件中;通过viminfo和history选项,可以控制存储历史记录的类型和数量;在命令行模式和搜索文本时,则可以重新调用这些历史记录。
命令历史类型
命令历史可以分为以下几种类型({name}):
类型 | 标识 | 内容 |
---|---|---|
c[md] | : | 命令行历史 |
s[earch] | / or ? | 查找字符串历史 |
e[xpr] | = | 表达式寄存器("=)历史 |
i[nput] | @ | 由input()函数输入的历史 |
d[ebug] | > | 调试命令历史 |
a[ll] | 所有类型的历史记录 |
查看命令历史
使用以下命令,可以显示命令行历史记录:
:history
使用以下命令,可以显示所有类型的历史记录:
:history all
使用以下格式的:history命令,可以查看指定类型和指定数目的历史记录:
:his[tory] [{name}] [{first}][, [{last}]]
{name}
,指定历史记录类型;{first}
,指定命令历史的起始位置(默认为第一条记录);{last}
,指定命令历史的终止位置(默认为最后一条记录)。
如果没有指定 {first} 和 {last},那么将会列出所有命令历史。
如果指定了 {first} 和 {last},那么就会列出指定范围内的历史记录条目。例如以下命令,将列出第一到第五条命令行历史:
:history c 1,5
正数,表示历史记录的绝对索引,也就是:history命令列出的第一列数字。即使历史记录中的其它条目被删除了,该索引数字也会保持不变。例如以下命令,将列出指定位置(第五条)命令行历史:
:history c 5
负数,表示历史记录的相对索引。以最新一条记录 (索引号为 -1) 为基准向后算起。如以下命令,将列出所有历史记录中倒数第二条记录:
:history all -2
使用以下命令,则会列出所有历史记录中最近的两条记录:
:history all -2,
使用以下命令,可以查看:history命令的帮助信息:
:help :history
删除历史记录
使用以下命令,可以删除命令行历史记录:
:call histdel("")
可以删除指定类型的历史记录。例如使用以下命令,将删除所有查询历史记录:
:call histdel("seach")
您也可以直接编辑viminfo文件,直接删除其中的历史记录。请注意,需要重启Vim,以重新读取修改后的viminfo文件。
命令历史选项
通过history选项,可以控制记录历史记录的数量(默认为50)。例如以下命令,设置保存1000条命令历史记录:
:set history=1000
请注意:在viminfo选项中,也有命令历史相关参数;请在vimrc配置文件中,检查'viminfo'和'history'设置的的一致性和优先级。
:history | 显示命令行历史记录 |
:history all | 显示所有类型的历史记录 |
:set history | 设置报错历史记录的数量 |