为什么 vi 明显损坏(viminfo 错误 E576),我该如何修复?

And*_*rew 19 ubuntu vi

我精通使用 Unix/Linux,但我不是专家。如果我想打开一个文件(例如,file.txt),我使用vi

vi file.txt
Run Code Online (Sandbox Code Playgroud)

这将打开文件,如果我想关闭它,我使用:q!. 在我使用 Unix/Linux 的两年里,我一直在使用这种方法。我所在的机构有一个运行 Ubuntu Linux 的集群。

但是,今天,我尝试打开一个文件,但收到以下错误消息:

E576: viminfo: Missing '>' in line: newest to oldest):
E576: viminfo: Missing '>' in line: ?/CJ
E576: viminfo: Missing '>' in line: ?/CG
E576: viminfo: Missing '>' in line: ?/CC
E576: viminfo: Missing '>' in line: ?/OEP
E576: viminfo: Missing '>' in line: ?/CEP
E576: viminfo: Missing '>' in line: ?/dih
E576: viminfo: Missing '>' in line: ?/ang
E576: viminfo: Missing '>' in line: ??b
E576: viminfo: Missing '>' in line: ?/xvg
E136: viminfo: Too many errors, skipping rest of file
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)

所以我按Enter。我收到相同的消息:

E576: viminfo: Missing '>' in line: newest to oldest):
E576: viminfo: Missing '>' in line: ?/CJ
E576: viminfo: Missing '>' in line: ?/CG
E576: viminfo: Missing '>' in line: ?/CC
E576: viminfo: Missing '>' in line: ?/OEP
E576: viminfo: Missing '>' in line: ?/CEP
E576: viminfo: Missing '>' in line: ?/dih
E576: viminfo: Missing '>' in line: ?/ang
E576: viminfo: Missing '>' in line: ??b
E576: viminfo: Missing '>' in line: ?/xvg
E136: viminfo: Too many errors, skipping rest of file
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)

我再次按下Enter,最后打开文件进行阅读/编辑。但是,当我尝试使用 关闭文件:q!以及尝试使用vi.

关键字CJ, CG, CC, OEP, CEP, dih, ang, 和xvg(虽然我不确定b)都是经常出现在我使用的文件中的字符串vi,尽管我不确定它们是否都存在于我打开的特定文件中(我不这么认为)。因此,也许我的viminfo文件有问题?不过,我使用vi不是 vim

我不确定发生了什么;您对我如何诊断并可能解决此问题有任何建议吗?

bah*_*mat 28

做这个:

rm -f ~/.viminfo
Run Code Online (Sandbox Code Playgroud)

.viminfo文件保存有关各种有用但非关键状态信息的元数据。你的腐败了。去掉它。

  • 移动`.viminfo`而不是删除它会更规避风险。例如,如果您正在处理大型代码库,则重建标记可能会非常痛苦。 (2认同)