Чому 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.

Ключові слова CJ, CG, CC, OEP, CEP, dih, ang, і xvg(я не впевнений b, хоча) всі рядки , які часто з'являються в файлах , які я прочитав , використовуючи vi, хоча я не впевнений , що вони все існують в конкретному файлі , який я відкриття (Я так не думаю). Таким чином, можливо, щось не так з моїм viminfoфайлом? Тим НЕ менше, я маю в використанні vi, НЕ vim .

Я не впевнений, що сталося; Чи є у вас якісь пропозиції, як я можу діагностувати та, можливо, виправити цю проблему?


2
Ваш ~/.viminfoкорумпований? Спробуйте перемістити його в інше місце і побачити, чи проблема повертається. Майте на увазі багато систем, які vimпросто пропонують viяк символьне посилання на vim.
jw013

2
Я використовую vi, не vim. Ти впевнений? viчасто псевдонім vim(перевірити, which viа потім fileу цьому місці).
ire_and_curses

2
У більшості Linux-систем vi є символьним посиланням на vim, тому у вас може бути пошкоджена viminfo.
Марк Коен

@ire_and_curses Дякую! Коли я входжу which vi, я отримую вихід /usr/bin/vi. Коли я входжу file /usr/bin/vi, я отримую вихід /usr/bin/vi: symbolic link to / etc / alternative / vi ' . Does this mean I am using vi`?
Андрій

1
@Andrew - Гаразд file /etc/alternatives/vi. Я очікую, що скаже вам, що ви насправді біжите vim.
ire_and_curses

Відповіді:


25

Зробити це:

rm -f ~/.viminfo

У .viminfoфайлі зберігаються метадані про різну корисну, але некритичну інформацію про стан. Ваш корумпований. Видали це.


2
Більш ризиковано було б рухатися, .viminfo а не видаляти. Наприклад, якщо ви працюєте над великою базою кодів, може бути дуже болісно реконструювати ваші позначки.
доношено успішно

@bahamat @donothingsuccessfully Дякую всім за ваш час! Переміщення .viminfo(метод запобігання ризику) вирішує проблему. Тож я гадаю, що мій .viminfoфайл був пошкоджений. Щира подяка за допомогу. Щасливих свят!
Андрій

1

Помилка vim E576 трапляється, коли у вашому .viminfoфайлі є якась синтаксична помилка, яка зберігає ваші команди та історію файлів тощо.

Пошкодження може статися, коли ви знаходитесь поза місцем або ваш двигун зберігання не працює. Ви можете спробувати відредагувати ~/.viminfo, знайти та видалити недійсні рядки, зрештою перейменувати його на інше ім’я та просто видалити його.

Ви також можете використовувати -i {viminfo}параметр, щоб вказати інший .viminfo файл.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.