Tại sao vi rõ ràng bị hỏng (lỗi viminfo E576) và làm cách nào để khắc phục?


18

Tôi thành thạo sử dụng Unix / Linux, nhưng tôi không phải là chuyên gia. Nếu tôi muốn mở một tệp (ví dụ file.txt:), tôi sử dụng vi:

vi file.txt

Điều này sẽ mở tập tin và nếu tôi muốn đóng nó, tôi sử dụng :q!. Tôi đã sử dụng phương pháp này trong hai năm mà tôi đã sử dụng Unix / Linux. Tổ chức của tôi có một cụm chạy Ubuntu Linux.

Tuy nhiên, hôm nay, tôi đã cố mở một tệp và tôi nhận được các thông báo lỗi này:

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

Vì vậy, tôi nhấn Enter. Tôi nhận được tin nhắn tương tự:

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

Một lần nữa tôi nhấn Enter, và cuối cùng tập tin mở ra để đọc / chỉnh sửa. Tuy nhiên, sự cố lặp lại khi tôi cố gắng đóng tệp bằng cách sử dụng :q!và cả khi tôi cố mở bất kỳ tệp nào khác bằng cách sử dụng vi.

Các từ khóa CJ, CG, CC, OEP, CEP, dih, ang, và xvg(tôi không chắc chắn về b, mặc dù) là tất cả các chuỗi mà thường xuất hiện trong các tập tin mà tôi đọc sử dụng vi, mặc dù tôi không chắc chắn rằng tất cả họ đều tồn tại trong file cụ thể mà tôi mở (Tôi không nghĩ vậy). Vì vậy, có lẽ có gì đó không đúng với viminfotập tin của tôi ? Tuy nhiên, tôi đang sử dụng vi, không phải vim .

Tôi không chắc những gì đã xảy ra; Bạn có gợi ý nào về cách tôi có thể chẩn đoán và có thể khắc phục sự cố này không?


2
~/.viminfotham nhũng của bạn ? Hãy thử di chuyển nó đi nơi khác và xem nếu vấn đề trở lại. Hãy ghi nhớ nhiều hệ thống cung cấp vimđơn giản vilà một liên kết tượng trưng đến vim.
jw013

2
Tôi đang sử dụng vi, không phải vim. Bạn có chắc không? vithường được đặt bí danh vim(kiểm tra which vivà sau đó filetrên vị trí đó).
ire_and_curses

2
Trên hầu hết các hệ thống linux, vi là một liên kết tượng trưng đến vim, vì vậy bạn có thể có một viminfo bị hỏng.
Mark Cohen

@ire_and_curses Cảm ơn! Khi tôi nhập which vi, tôi nhận được đầu ra /usr/bin/vi. Khi tôi nhập file /usr/bin/vi, tôi có được đầu ra /usr/bin/vi: symbolic link to / etc / thay thế / vi ' . Does this mean I am using vi`?
Andrew

1
@Andrew - Ok, vậy thì làm file /etc/alternatives/vi. Tôi hy vọng điều đó sẽ cho bạn biết bạn đang thực sự chạy vim.
ire_and_curses

Câu trả lời:


25

Làm cái này:

rm -f ~/.viminfo

Các .viminfotập tin giữ siêu dữ liệu về thông tin trạng thái khác nhau hữu ích, nhưng không quan trọng. Của bạn là tham nhũng. Loại bỏ nó.


2
Nó sẽ có nhiều rủi ro không thích di chuyển .viminfo hơn là loại bỏ nó. Ví dụ, nếu bạn đang làm việc trên một cơ sở mã lớn, việc tái cấu trúc nhãn hiệu của bạn có thể rất khó khăn.
donothings thành công

@bahamat @donothingsuccess thành công Cảm ơn tất cả thời gian của bạn! Di chuyển .viminfo(phương pháp không thích rủi ro) khắc phục vấn đề. Vì vậy, tôi đoán .viminfotập tin của tôi đã bị hỏng. Chân thành cảm ơn sự giúp đỡ của bạn. Chúc mừng ngày lễ!
Andrew

1

Lỗi vim E576 xảy ra khi bạn gặp một số lỗi cú pháp trong .viminfotệp lưu trữ lịch sử lệnh và tệp của bạn, v.v.

Tham nhũng có thể xảy ra khi bạn ở ngoài không gian hoặc công cụ lưu trữ của bạn bị lỗi. Bạn có thể cố gắng chỉnh sửa ~/.viminfo, định vị và xóa các dòng không hợp lệ, cuối cùng để đổi tên thành tên khác và chỉ để xóa nó.

Bạn cũng có thể sử dụng -i {viminfo}tham số để chỉ định tệp .viminfo khác nhau.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.