บางครั้งไฟล์ของฉันค้างใน vi | vim เกิดอะไรขึ้น


298

บางครั้งเมื่อฉันแก้ไขไฟล์โดยใช้ vi หรือ vim ไฟล์ของฉันก็ค้าง แม้ว่าฉันจะพิมพ์Ctrl+CหรือCtrl+Dมันยังคงค้างอยู่ที่นั่น ฉันkill -9 <pid>จากเทอร์มินัลอื่น pid ถูกฆ่า แต่ไฟล์ยังคงค้างอยู่ที่นั่น

ฉันเดาว่าฉันต้องพิมพ์คีย์บางตัวซึ่งฉันไม่รู้ มีใครมีความคิดบ้างไหม?

คำตอบ:


605

Ctrl- Sน่าจะเป็นผู้ร้าย มันหยุดเอาท์พุทหน้าจอของคุณในอาคารส่วนใหญ่ ขณะที่ไมเคิลกล่าวถึงคุณสามารถเรียกคืนหน้าจอของคุณเข้าสู่ภาวะปกติโดยการป้อน-CtrlQ

ในทางทฤษฎีการตั้งค่าstty -ixonควรป้องกันCtrl- Sจากการแช่แข็งหน้าจอของคุณ แต่มันไม่ทำงานในการเข้าสู่ระบบ Solaris 10 ในพื้นที่ของฉัน


@CallMeNorm - สิ่งนี้เกิดขึ้นกับทางลัด <Ctrl-A> ที่ขี้ขลาดตาขาวสำหรับหน้าจอ / tmux / etc เพราะฉันมีนิ้วอ้วน ;)
Cometsong

หากด้วยเหตุผลใดก็ตาม - คุณทำการแมปใหม่ทั่วโลก ("ปิดการใช้งาน") Ctrl-Q (เช่นเพื่อหลีกเลี่ยงการเลิก Firefox โดยไม่ตั้งใจ) การเพิ่มstty -ixonไปยังการ~/.bashrcเปิดใช้งาน Ctrl-q ในเทอร์มินัล ในกรณีของฉัน Ctrl-s กำลังแช่แข็ง Vim และฉันไม่สามารถกลับไปหามันได้ ... จนกว่าฉันจะทำการแก้ไข. bashrc นั้น รายละเอียดที่นี่: superuser.com/a/1328326/409327
Victoria Stuart

75

คุณจะใช้มันในหน้าจอ GNU หรือไม่? (ดังที่ pra ชี้ให้เห็นว่านี่เป็นความจริงแม้จะอยู่นอกจอ) มันค่อนข้างธรรมดาที่จะเผลอกดCtrl+S( xoff) ซึ่งจะปิดการใช้งานการวาดภาพบนหน้าจอจนกว่าคุณจะตีCtrl+Q( xon)


มีคีย์ใดบ้างที่จะตรึงไฟล์หากเสียงเรียกเข้าของฉันรวมกับ cscope?
user399517

1
มันเกิดขึ้น (บางครั้ง) หลังจากฉันพิมพ์ shift + insert และ vi แสดงว่า: โหมดเปิด
user399517

1
Ctr-S ไม่เฉพาะกับหน้าจอ GNU
pra

1

หากCtrl+ Sไม่ใช่ปัญหาของคุณ (ตามคำตอบของ pra ) สิ่งนี้อาจช่วยคุณได้

หากคุณพยายามติดตั้งปลั๊กอินแบบกำหนดเองจำนวนมากโดยใช้Vundleบางครั้งสิ่งต่าง ๆ จะผิดปกติ คุณสามารถลองลบแพ็คเกจเหล่านี้ด้วยตนเองและดูว่าช่วยได้หรือไม่ หาที่ปลั๊กอินที่ได้รับการเขียนไป - ในกรณีของฉันพวกเขาทั้งหมดภายใน.vim/bundleไดเรกทอรีเพราะผมใช้git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vimในการติดตั้งVundle ดังนั้นเมื่อภายในไดเรกทอรีคุณสามารถเช็ดโฟลเดอร์มัดทั้งเพื่อลบปลั๊กอินทั้งหมดและเริ่มต้นอีกครั้งโดยการดำเนินการ.vimrm -rf bundle

หวังว่ามันจะช่วย!


-11

คุณสามารถลองเปลี่ยนเค้าโครงแป้นพิมพ์ได้ Vi | vim โต้ตอบกับอินพุตภาษาอังกฤษ (- like?) เท่านั้น

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