บางครั้งฉันพยายามเรียกใช้ Vim โดยใช้วิธีxargs
นี้:
find . -name '*.java' | xargs vim
…งานประเภทใด:
เมื่อ Vim เปิดตัวฉันจะเห็นแฟลชคำเตือนต่อไปนี้สั้น ๆ :
Vim: Warning: Input is not from a terminal
- การแก้ไขการทำงาน -
:files
ระบุ.java
ไฟล์ทั้งหมดอย่างถูกต้องตามที่คาดไว้ - ฉันสามารถบันทึกและออกจาก
อย่างไรก็ตามหลังจากออกจาก Vim เทอร์มินัลของฉันถูก borked:
- สิ่งที่ฉันพิมพ์ที่ shell prompt ไม่ได้สะท้อน
- การขึ้นบรรทัดใหม่จะไม่ปรากฏเลยและบางครั้งการป้อนบรรทัดก็จะปรากฏขึ้น
สิ่งนี้จะดำเนินต่อไปจนกว่าฉันจะออกreset(1)
คำสั่งเพื่อกำหนดค่าเริ่มต้นใหม่ให้กับเทอร์มินัล
นี่เป็นข้อผิดพลาด Vim หรือมีคำอธิบายที่น่าพอใจมากกว่าสำหรับสาเหตุที่มันโต้ตอบกับเทอร์มินัลเช่นนั้น? ฉันเคยเห็นมันเกิดขึ้นใน Vim จนถึงเวอร์ชัน 7.3 (ดูเหมือนว่าจะไม่มีความหมาย) บน Linux และ Unices ต่างๆ
vim $(find . -name '*.java')
ฉันรู้หนึ่งวิธีแก้ปัญหาคือ การแก้ไขปัญหาอื่น ๆ จะได้รับการต้อนรับแม้ว่าจะไม่ใช่คำถามหลักของฉัน
xargs
ใช้ตัวอย่างstdin
ที่ Vim และ break ไม่สามารถใช้ ทุกอย่างในภายหลัง