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


18

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

vi file.txt

这将打开文件,如果要关闭它,请使用: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

所以我按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

再次按Enter,最后打开文件进行读取/编辑。但是,当我尝试使用关闭文件时:q!,以及当我尝试打开任何其他文件时,问题都会重复vi

关键的词CJCGCCOEPCEPdihang,和xvg(我不知道b,虽然)是经常出现在文件中,我使用读取所有的字符串vi,虽然我不能肯定他们在特定的文件都存在,我开(我不这么认为)。因此,也许我的viminfo文件有问题?不过,我使用vi不是 vim

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


2
~/.viminfo腐败了吗?尝试将其移至其他位置,看看问题是否再次出现。请记住,许多系统vim只是提供vi作为的符号链接vim
jw013

2
我正在使用vi,而不是vim。你确定吗?vi通常被别名为vim(先检查which vi然后file在该位置)。
ire_and_curses 2012年

2
在大多数linux系统上,vi是vim的符号链接,因此您的viminfo可能已损坏。
马克·科恩

@ire_and_curses谢谢!当我输入时which vi,我得到输出/usr/bin/vi。输入时file /usr/bin/vi,将获得输出/usr/bin/vi: symbolic link to / etc / alternatives / . Does this mean I am using vi'vi`?
安德鲁

1
@Andrew-好的,也可以file /etc/alternatives/vi。我希望这会告诉您您实际上正在跑步vim
ire_and_curses 2012年

Answers:


25

做这个:

rm -f ~/.viminfo

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


2
移动.viminfo 而不是删除它会带来更大的风险厌恶 。例如,如果您正在使用大型代码库,则重新构造标记可能会非常痛苦。
donothing成功

@bahamat @donothingsuccessally感谢您的宝贵时间!移动.viminfo(规避风险的方法)可以解决此问题。所以我想我的.viminfo文件已损坏。真诚的感谢您的帮助。节日快乐!
安德鲁

1

当您在.viminfo文件中存储了命令和文件历史记录等语法错误时,就会发生vim错误E576 。

当空间不足或存储引擎出现故障时,可能会发生损坏。您可能会尝试编辑~/.viminfo,查找和删除无效行,最终将其重命名为其他名称而只是将其删除。

您也可以使用-i {viminfo}参数指定其他.viminfo文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.