Vim 存储我们使用 : 用于当前执行的命令列表。但是当我关闭 vim 并重新启动它时,vim 命令历史记录会丢失。我在 .vimrc 文件中试过set history = 1000
,但没有帮助。
Vim 在哪里维护本地命令历史记录?
保留命令历史的命令是什么?
6 回答
只是前几天让我发现的一个问题,这可能是也可能不是你的问题:
在某些 Linux 系统(例如 Ubuntu)上,如果您第一次运行 VIM,您以超级用户身份运行它,那么 $HOME/.viminfo 文件将由 root 所有者创建,而您的本地用户没有写入权限给它。这解释了为什么我的 VIM 在正确配置时没有存储命令历史记录。
底线:在 *nix 系统上,找到您的 .viminfo 文件,并确保您对其具有读/写权限。
要检查 Vim 是否支持该'viminfo'
文件(存储历史记录):echo has('viminfo')
,. 对应的设置不能为空::set viminfo?
,并且:set history?
应该大于一。
如果写入 viminfo 文件有问题(尽管在这种情况下 Vim 应该抱怨),你可以尝试通过vim -i /tmp/viminfo
您应该检查.viminfo
文件的权限。chown
您可能需要使用或将文件的所有者更改为当前用户sudo 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 文件用于存储:
- 命令行历史。
- 搜索字符串历史记录。
- 输入行历史。
- 非空寄存器的内容。
- 标记几个文件。
- 文件标记,指向文件中的位置。
- 最后搜索/替换模式(用于“n”和“&”)。
- 缓冲区列表。
- 全局变量。
|+viminfo| 时不支持 viminfo 文件。功能已在编译时禁用。
你也可以使用Session
文件。
我在 Ubuntu 上绕了一圈,设置上面提出的 viminfo 解决方案导致错误。
我最终在命令模式下执行了命令“版本”,对于大多数内容,它以“-”返回,包括:-cmdline_hist -cmdline_info
我运行了以下命令,一切正常: sudo apt install vim