Vim记录历史

  • 本文关键字:历史 记录 Vim vim
  • 更新时间 :
  • 英文 :


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

只是前几天让我发现的一个问题,这可能是也可能不是你的问题:

在某些 Linux 系统(例如 Ubuntu)上,如果您第一次运行 VIM,则以超级用户身份运行它,则 $HOME/.viminfo 文件将使用 root 所有者创建,并且您的本地用户没有写入它的权限。这就解释了为什么我的 VIM 在正确配置命令时不存储命令历史记录。

底线:在 *nix 系统上,找到您的 .viminfo 文件,并确保您对其具有读/写权限。

要检查 Vim 是否支持 'viminfo' 文件(存储历史记录),:echo has('viminfo') .相应的设置不得为空::set viminfo?:set history?应大于 1。

如果编写 viminfo 文件时出现问题(尽管 Vim 在这种情况下应该会抱怨),您可以尝试通过 vim -i /tmp/viminfo 传递不同的位置

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

Baint先生给出了答案。

  • 转到$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 文件用于存储:

  • 命令行历史记录。
  • 搜索字符串历史记录。
  • 输入行历史记录。
  • 非空寄存器的内容。
  • 多个文件的标记。
  • 文件标记,指向文件中的位置。
  • 上次搜索/替换模式(对于"n"和"&")。
  • 缓冲区列表。
  • 全局变量。

当 |+viminfo| 功能已 编译时禁用。

您也可以使用Session文件。

我在 Ubuntu 上绕了一圈,设置上面提出的 viminfo 解决方案导致错误。

我最终在命令模式下执行了命令"版本",对于大多数内容,它都返回了"-",包括:-cmdline_hist-cmdline_info

我运行了以下命令,一切再次正常工作:sudo apt install vim

我遇到了同样的问题。问题是我安装了 vim-minimal(这是 Fedora 的默认设置),它不支持历史记录。我不得不卸载它并安装完整的 vim。我现在有历史...和语法着色!

如果您使用的是 vimrc 文件,请检查您的文件夹和文件是否存在和正确性

set history=200 
set undolevels=128 
set undodir=~/.vim/undodir/ 
set undofile 
set undolevels=1000 
set undoreload=10000 

如果指定的文件夹(在我的情况下为 undodir)不存在,则不会保存历史记录。

最新更新