ไฮไลต์คำเดียว * เสมอ * ในเทอร์มินัล


6

มีเทอร์มินัลอีมูเลเตอร์ (เช่นเทอร์มินัล GNOME) สำหรับลินุกซ์ / ยูนิกซ์ออกหรือไม่ซึ่งช่วยให้การไฮไลต์คำเดียวเสมอ (เช่น "ไฮไลต์คำ FAIL เป็นสีแดง") หรือไม่? หรืออาจจะมีปลั๊กอินสำหรับเทอร์มินัล GNOME (ถ้ามีเช่น "ปลั๊กอินสำหรับ gnome-terminal" อยู่)

วิธีแก้ปัญหาควรเน้นคำโดยไม่คำนึงถึงแอปพลิเคชันที่กำลังทำงานอยู่ภายในเทอร์มินัลเช่นกำลังทำงาน cat test.txt ควรเน้นคำเช่นเดียวกับ make all.

ความช่วยเหลือใด ๆ ที่ได้รับการชื่นชมอย่างมากจากดวงตาที่มีตามัวของฉัน


KDE Konsole จะเน้นคำใด ๆ ที่อยู่ในแถบการค้นหา - คุณสามารถเรียกใช้ภายใต้ Gnome มันจะใช้ได้ไหม
Paul

@ พอลขอบคุณนั่นคือจุดเริ่มต้น :-)
scravy

คำตอบ:


8

การใช้ bash คุณสามารถเน้นคำทั้งหมด 'FAIL' เป็นสีแดงโดยใช้คำสั่งต่อไปนี้:

txtred=$(echo -e '\e[0;31m')
txtrst=$(echo -e '\e[0m')
bash | sed -e "s/FAIL/${txtred}FAIL${txtrst}/g"

สิ่งที่ทำคือการสร้าง bash shell ใหม่และแก้ไข stdout ของ shell ใหม่นี้โดยใช้ sed. หากคุณต้องการสิ้นสุดรุ่น stdout เพียงพิมพ์ exit เพื่อกลับไปที่เปลือกก่อนหน้าของคุณ คุณสามารถค้นหาคำสั่งสีเพิ่มเติม ที่นี่ . echo -e การเปลี่ยนแปลงจำเป็นต้องมีเพื่อรับค่า ESCAPE ที่แท้จริงของ \e.

ฉันลองด้วย echo และ cat ใน subshell นี้และมันใช้งานได้ อย่างไรก็ตามมันแบ่งโปรแกรมที่คาดหวังว่าเทอร์มินัลเป็นเอาต์พุตของมันเช่น vi. ฉันเดาว่ามันจะทำลายโปรแกรมด้วยการบัฟเฟอร์เอาต์พุตพิเศษ นอกจากนี้ยังทำลายคำสั่งเช่น echo -n FAIL และเปลี่ยนพฤติกรรมของคำสั่งเช่น ls (ls พิมพ์ไฟล์จำนวนมากต่อบรรทัดเมื่อเอาต์พุตเป็นเทอร์มินัลและหนึ่งไฟล์ต่อบรรทัดเมื่อเอาต์พุตเป็นไพพ์)



-2

คุณสามารถใช้ได้

cat filename|grep word -w 

ที่ไหน filename เป็นชื่อของไฟล์และ word เป็นคำที่คุณต้องการเน้น

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