เหตุใด 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เป็น symlink vimไป
jw013

2
ฉันใช้ vi ไม่ใช่ vim คุณแน่ใจไหม? viมักใช้นามแฝงเป็นvim(โปรดตรวจสอบกับwhich viและจากนั้นfileในตำแหน่งนั้น)
ire_and_curses

2
ในระบบ linux ส่วนใหญ่ vi เป็น symlink ไปเป็นกลุ่มดังนั้นคุณอาจมี viminfo เสียหาย
ทำเครื่องหมายโคเฮน

@ire_and_curses ขอบคุณ! เมื่อฉันใส่ฉันได้รับการส่งออกwhich vi /usr/bin/viเมื่อฉันป้อนfile /usr/bin/viฉันจะได้รับผลลัพธ์/usr/bin/vi: symbolic link to / etc / ทางเลือก / 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 แทนที่จะเอามันออกไป ตัวอย่างเช่นหากคุณกำลังทำงานกับรหัสฐานขนาดใหญ่มันอาจเจ็บปวดมากที่จะสร้างเครื่องหมายของคุณขึ้นมาใหม่
donothingsuccessfully

@bahamat @donothingsuccessfully ขอบคุณสำหรับเวลาของคุณ! การย้าย.viminfo(วิธีหลีกเลี่ยงความเสี่ยง) แก้ไขปัญหาได้ ดังนั้นฉันเดาว่า.viminfoไฟล์ของฉันเสียหาย ขอขอบคุณอย่างจริงใจสำหรับความช่วยเหลือของคุณ สุขสันต์วันหยุด!
แอนดรู

1

ข้อผิดพลาด vim E576 เกิดขึ้นเมื่อคุณมีข้อผิดพลาดทางไวยากรณ์ใน.viminfoไฟล์ของคุณซึ่งเก็บคำสั่งและประวัติไฟล์ของคุณ ฯลฯ

ความเสียหายอาจเกิดขึ้นเมื่อคุณอยู่นอกพื้นที่หรือเครื่องมือจัดเก็บข้อมูลของคุณผิดพลาด คุณอาจลองแก้ไข~/.viminfoค้นหาและลบบรรทัดที่ไม่ถูกต้องในที่สุดเพื่อเปลี่ยนชื่อเป็นชื่ออื่นและเพื่อลบออก

คุณยังสามารถใช้-i {viminfo}พารามิเตอร์เพื่อระบุไฟล์. viminfo ที่แตกต่างกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.