什么设置了vim的历史?

kef*_*ich 11 vim

我有命令

set history=10000
Run Code Online (Sandbox Code Playgroud)

在我的.vimrc中一段时间​​,并意识到它没有设置历史记录 -

:set history
Run Code Online (Sandbox Code Playgroud)

打印20.

然后我移动set history=10000到我的.vimrc的末尾并重新获得它,现在history=10000按照要求.

set history我的.vimrc 中没有其他实例.还有哪些命令设置历史长度?函数定义是否可能覆盖历史记录?还有其他设置我应该担心压倒一切吗?

Joh*_*web 23

类型:

:verbose set history
Run Code Online (Sandbox Code Playgroud)

这将告诉你'history'最后设置的位置.

NB:如果它说:

  history=20
        Last set from ~/.vimrc
Run Code Online (Sandbox Code Playgroud)

...你什么都没得到set hi=20set history=20在你的.vimrc里,你需要确保你有set history=10000 set nocp,由所强调ZYX的答案.这可能是您将其移动到初始化文件末尾时发现它有效的原因.

  • `nocp` 确实是问题所在。我已经接受了另一个答案,但希望这有足够的赞成票来引起人们的注意,因为“详细”位很有帮助。 (2认同)

ZyX*_*ZyX 18

根据帮助,

'history''hi'号码(Vim默认值:20,Vi默认值:0)

注意:当设置'compatible'时,此选项设置为Vi默认值,当'compatible'复位时,此选项设置为Vim默认值.

,所以如果你set nocompatible在vimrc中的某个地方(它很常见),那么set history必须遵循这个声明.这是一个通用规则:无论你写什么,都应该追求set nocompatible.如果它是一个选项,它必须追求set nocompatible.有一些东西(包括一些选项)可以安全地出现在它之前,但在这个陈述之前我唯一使用的是一个守卫.