Vim สามารถแปลรหัสการหลีกเลี่ยงสีเทอร์มินัลได้หรือไม่


29

โปรแกรม CLI จำนวนมากแสดงผลข้อความที่เน้นเป็นอย่างดี ในขณะที่พวกเขาส่วนใหญ่ตรวจสอบว่าการส่งออกไปเป็นไฟล์หรือไม่บางคนรวมถึงรหัสการหลบหนีขั้ว ฉันชอบเอาต์พุตด้วยโค้ด escape แต่การดูไฟล์เหล่านี้ใน Vim นั้นเจ็บปวด

Vim สามารถแปลรหัสการหลบหนีเหล่านี้เป็นสีที่คาดหวังได้หรือไม่? ถ้าไม่เป็นกลุ่มสามารถตั้งค่าให้ละเว้นรหัสหนีภัยเหล่านี้ได้หรือไม่

คำตอบ:


28

มีปลั๊กอินต่าง ๆ ที่ช่วยให้คุณดูสี ANSI ผ่านทางรหัสหลบหนี:


หากคุณต้องการลบรหัสการยกเว้นทั้งหมดคุณสามารถใช้:

:%s/<1b>\[[0-9;]*m//g

หมายเหตุ: <1b>จะไม่ข้อความตัวอักษรก็เป็นตัวละครที่หลบหนีใช้Ctrl+ vตามด้วยEscการแทรกมัน (มันก็อาจแสดงขึ้นเป็น^[ขึ้นอยู่กับdisplayการตั้งค่า)

หรือคุณสามารถลบออกด้วยsed; ตัวอย่างเช่น:

$ sed 's|\x1b\[[;0-9]*m||g' somefile | vi -

0

หากคุณมีกลุ่มที่ทันสมัยเพียงพอที่มีคุณสมบัติ + เทอร์มินัลคุณสามารถทำได้:term cat somefileและคุณจะได้รับบัฟเฟอร์พร้อมกับการแปลรหัสเทอร์มินัลทั้งหมด

สิ่งนี้อาจทำงานได้ดีกับไฟล์ขนาดใหญ่กว่าเช่น Colorizer ซึ่งทำให้เสียงเรียกเข้าของฉันช้าลงอย่างไม่น่าเชื่อเมื่อฉันปล่อยให้มันหลวมในไฟล์ 6000-line

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