我已经在.vimrc文件中添加了以下设置:

set history=1000


已经存在了一段时间,我每天都在vim中工作,所以有很多现在执行的命令。我从vim帮助中知道,没有存储重复的和映射的命令行,并且还说:

Use the 'history' option to set the number of lines that are remembered
(default: 20).


目前,我的历史记录中大约有130行(:his和q:有所不同,第二个大约有90个条目),但我认为应该有更多。缺少某些命令,例如,打开某些文件或使用复杂的正则表达式替换某些命令。已经有一段时间没有使用了,但是我的历史记录长度已经足够长了。

还有另一个我不知道的限制吗?也许这不是增加cmdline历史记录大小的正确方法?

#1 楼

:选项中的'viminfo'值可能会限制持久命令的数量。请参阅:help viminfo-:

: Maximum number of items in the command-line history to be
  saved.  When not included, the value of 'history' is used.



评论


可能就是这样。如何更改此设置? :set viminfo =:1000会做什么?

– qiubix
15年4月14日在14:45

那将是一个非默认值。检查:verbose set viminfo?设置位置,最好更改该位置。由于此选项使用一组值,因此最好使用:set viminfo-=:42 |设置viminfo + =:1000进行修改。

– Ingo Karkat
15年4月14日在15:03

显然,我必须使用+ =扩展值集,而不仅仅是覆盖它。使用冗长的注释,我得到了:〜/ .vimrc中的最后一个设置,包含一些默认值。我没有任何更改viminfo行为的设置,所以我不知道在那里要更改什么。我将在此行添加:1000参数,并在历史记录大小增加时接受您的回答。

– qiubix
2015年4月14日在16:54

您能否在这个答案上做些扩展,以显示该如何做?好像:set viminfo + =:1000可以做到,但是我不确定我到底为什么要先从中减去42。

–TankorSmash
17年11月1日在1:43

@TankorSmash:不减去42;它打算从'viminfo'选项中删除:42部分(42只是一个随机数,因为OP的配置中的确切数字未知)。如果您那里没有现有的默认值,那么设置viminfo + =:1000确实足够了。

– Ingo Karkat
17年11月2日在10:35

#2 楼

viminfo值似乎是一组用逗号分隔的值。
在我的情况下,我将更改为:
:set viminfo=!,'10000,<50,s10,h

改为
:set viminfo=!,'10000,<50,s10,h,:10000


评论


+ = / ^ =将为您处理以逗号分隔的内容

– D. Ben Knoble♦
20/09/08在13:51

#3 楼

将此添加到您的.vimrc中:

if &history < 1000
  set history=1000
endif


来源:https://github.com/tpope/vim-sensible/commit/f7bdc45c03083d61c3955e54a2ef610b21d2801e

评论


海报已经有此设置

–克里斯蒂安·布拉班特(Christian Brabandt)
17年2月10日在6:24