Bash: สำเนาสี / วาง


12

ในขณะที่ทุกคนฉันมีเอาต์พุต colorized ไม่กี่ในทุบตีของฉัน ฉันต้องการให้ไวยากรณ์ colorized เมื่อคัดลอกสารสกัดไปยังตัวแก้ไข HTML ตัวอย่างเช่น มีวิธีจัดการกับเรื่องนี้หรือไม่?

ขอบคุณ

คำตอบ:


17

หากคุณกำลังพูดคุยเกี่ยวกับการส่งออก colorized คำสั่งบางสาธารณูปโภคบรรทัดชอบls, grep, cmake, git diffฯลฯ โปรดทราบว่ามันไม่ได้มีความสัมพันธ์ที่จะ GNU ทุบตีใด ๆ

อย่างไรก็ตามมีเครื่องมือหลายอย่างสำหรับการแปลงเอาต์พุตสีด้วย ANSI escape sequences เป็น HTML:

  • aha จากแพ็คเกจที่มีชื่อเดียวกัน
  • ansi2htmlจากHTML ::โมดูลFromANSI Perl (ไม่ได้บรรจุใน Ubuntu repo สามารถติดตั้งได้จาก CPAN)
  • ansi2html.shโดยpixelb (ไม่ใช่แพ็คเกจให้ดาวน์โหลดจาก git)

การใช้งานของทั้งหมดของพวกเขาค่อนข้างง่าย: พวกเขาอ่านลำดับหนีขั้วจากstdinและใส่ HTML stdoutเพื่อ แต่หมายเหตุ: สิ่งที่เป็นประโยชน์ส่วนใหญ่จะไม่เปลี่ยนสีเอาท์พุทถ้ามันไม่ได้ไปที่เทอร์มินัล คุณต้องสั่งให้ผลิตออกมา colorized อย่างชัดเจน เช่น.:

$ ls --color=always | aha | xsel -i -b

xsel -i -b ที่นี่จะคัดลอก HTML ไปยังคลิปบอร์ด


อันนี้ ( aha) ทำงานได้อย่างสวยงาม; ขอบคุณมาก!
ShreevatsaR

2
aha - ยอดเยี่ยม! นี่เกือบจะสมบูรณ์แบบสำหรับฉัน เพื่อให้สามารถคัดลอกข้อความที่จัดรูปแบบฉันปรับเส้นทางไปยัง tmp เปิดในเบราว์เซอร์แล้วก็คัดลอก / วางสำหรับเว็บไซต์อื่น ๆ : git -c color.ui=always diff | aha > /tmp/diff.html && firefox /tmp/diff.html ... และใช่ฉันรู้ว่า OP ต้องการ HTML แต่เราหลายคนจะสะดุดที่นี่ต้องการ การจัดรูปแบบโดยทั่วไป
ปราชญ์

-1

คุณต้องใช้ไลบรารี javascript เพื่อที่คุณจะไม่สามารถคัดลอก / วางและเก็บสีได้เหมือนเดิม บางไลบรารียอดนิยมสำหรับนี้คือ:

ที่มา: คำถามที่คล้ายกันเกี่ยวกับ SO

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