Vimlogging历史

Vim存储我们应用的命令列表:用于当前的执行。 但是当我closuresvim并重新启动时,vim命令历史logging丢失。 我试图在.vimrc文件中set history = 1000 ,但没有帮助。
Vim在哪里维护本地的命令历史?
保留命令历史logging的命令是什么?

要检查Vim是否支持'viminfo'文件(它存储历史logging) :echo has('viminfo') 。 相应的设置不能为空:set viminfo? ,和:set history? 应该大于一个。

如果写viminfo文件时出现问题(虽然在这种情况下Vim应该会抱怨),但你可以尝试通过vim -i /tmp/viminfo

只是一个问题,抓住我出去,这可能是也可能不是你的问题:

在某些Linux系统上(例如Ubuntu),如果你第一次运行VIM,你将以超级用户的身份运行它,那么$ HOME / .viminfo文件将被root用户创build,而你的本地用户没有权限写到它。 这就解释了为什么我的VIM在configuration正确的时候没有存储命令历史logging。

底线:在一个* nix系统上,find你的.viminfo文件,并确保你有它的读/写权限。

您应该检查.viminfo文件的权限。 您可能需要使用chownsudo chown将文件的所有者更改为当前用户。

贝恩先生给出了答案。

  • 转到$HOME目录。
  • ls -l .viminfo检查权限。
  • 更改权限,以便组和所有者也可以有写权限。 使用:

      sudo chown yourUserId $HOME/.viminfo 

它应该解决这个问题。

您将不得不设置viminfo选项。 把它设置在你的$ MYVIMRC中

更新要找出选项上次设置/更改的位置:

 :verbose set viminfo? 

请参阅http://vimdoc.sourceforge.net/htmldoc/starting.html#viminfo-file

如果您退出Vim并稍后重新启动,您通常会丢失大量信息。 viminfo文件可以用来记住这些信息,这使您可以继续离开的地方。

这在第21.3节介绍 的用户手册。

viminfo文件用于存储:

  • 命令行历史。
  • searchstring历史。
  • input历史logging。
  • 非空寄存器的内容。
  • 标记几个文件。
  • 文件标记,指向文件中的位置。
  • 上次search/replace模式('n'和'&')。
  • 缓冲区列表。
  • 全局variables。

viminfo文件在| + viminfo |时不受支持 function已在编译时被禁用。

你也可以使用Session文件。