Mengapa vi tampaknya rusak (viminfo error E576), dan bagaimana saya bisa memperbaikinya?

18

Saya mahir menggunakan Unix / Linux, tetapi saya bukan ahli. Jika saya ingin membuka file (misalnya, file.txt), saya menggunakan vi:

vi file.txt

Ini membuka file, dan jika saya ingin menutupnya, saya gunakan :q!. Saya telah menggunakan metode ini selama dua tahun saya menggunakan Unix / Linux. Institusi saya memiliki cluster yang menjalankan Ubuntu Linux.

Namun hari ini, saya mencoba membuka file, dan saya mendapat pesan kesalahan ini:

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

Jadi saya tekan Enter. Saya mendapatkan pesan yang sama:

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

Sekali lagi saya tekan Enter, dan akhirnya file terbuka untuk membaca / mengedit. Namun, masalah berulang ketika saya mencoba untuk menutup file menggunakan :q!, dan juga ketika saya mencoba membuka file lain yang menggunakan vi.

Kata-kata kunci CJ, CG, CC, OEP, CEP, dih, ang, dan xvg(saya tidak yakin tentang b, meskipun) adalah semua string yang sering muncul dalam file yang saya baca menggunakan vi, meskipun saya tidak yakin bahwa mereka semua ada pada file tertentu yang saya membuka (Kurasa tidak). Jadi, mungkin ada yang salah dengan viminfofile saya ? Namun, saya saya menggunakan vi, tidak vim .

Saya tidak yakin apa yang terjadi; apakah Anda memiliki saran tentang bagaimana saya dapat mendiagnosis, dan mungkin memperbaiki, masalah ini?

Andrew
sumber
2
Apakah Anda ~/.viminfokorup? Coba pindahkan ke tempat lain dan lihat apakah masalahnya kembali. Perlu diingat banyak sistem yang menyediakan vimsederhananya visebagai symlink vim.
jw013
2
Saya menggunakan vi, bukan vim. Apakah kamu yakin visering alias vim(periksa dengan which vidan kemudian filedi lokasi itu).
ire_and_curses
2
Pada kebanyakan sistem linux, vi adalah symlink ke vim, jadi Anda mungkin memiliki viminfo yang korup.
Mark Cohen
@ire_and_curses Terima kasih! Ketika saya masuk which vi, saya mendapatkan output /usr/bin/vi. Ketika saya masuk file /usr/bin/vi, saya mendapatkan output /usr/bin/vi: symbolic link to /etc/ . Does this mean I am using ternet /vi ' vi`?
Andrew
1
@ Andrew - Ok, begitu juga file /etc/alternatives/vi. Saya berharap itu akan memberitahu Anda bahwa Anda benar-benar berlari vim.
ire_and_curses

Jawaban:

25

Melakukan hal ini:

rm -f ~/.viminfo

The .viminfoFile terus metadata tentang berbagai berguna, tetapi non-kritis informasi negara. Milikmu korup. Singkirkan.

bahamat
sumber
2
Akan lebih berisiko untuk pindah .viminfo daripada menghapusnya. Sebagai contoh jika Anda bekerja pada basis kode besar mungkin akan sangat menyakitkan untuk merekonstruksi tanda Anda.
donasi berhasil
@bahamat @donothings berhasil Berhasil untuk semua waktu Anda! Bergerak .viminfo(metode penghindaran risiko) memperbaiki masalah. Jadi saya kira .viminfofile saya rusak. Terima kasih yang tulus atas bantuan Anda. Selamat berlibur!
Andrew
1

Kesalahan vim E576 terjadi ketika Anda memiliki beberapa kesalahan sintaksis dalam .viminfofile Anda yang menyimpan perintah dan riwayat file Anda, dll.

Korupsi dapat terjadi ketika Anda kehabisan ruang atau mesin penyimpanan Anda rusak. Anda dapat mencoba mengedit ~/.viminfo, mencari dan menghapus garis yang tidak valid, akhirnya untuk mengubah nama menjadi nama yang berbeda dan hanya untuk menghapusnya.

Anda juga dapat menggunakan -i {viminfo}parameter untuk menentukan file .viminfo yang berbeda.

kenorb
sumber