Skip to content

[Linux] 使用 `pygmentize` 或 `highlight` 來顯示、印出帶有顏色的文件內容

Last Updated on 2023-03-14 by Clay

我大部分的上班時間都用來找一些讓 Linux 終端機顯示得更漂亮的工具,反正老闆看了也只會覺得我很厲害要有美觀的介面才能提高生產力!」 —— 愛貓工程師

需求簡介

當我們在終端機中工作時,免不了沒完沒了地和程式碼、檔案文件打交道,大部分時候如果文字全部都呈現同樣的顏色,只會讓人視覺疲累、抓不住重點。

當然,你可以在你習慣的編輯器,比方說 VIM,使用預設的、或是額外裝設的一些支援程式碼高亮的套件,來幫助自己更舒服地閱讀程式碼或文字敘述。不過,若是今天你想要把這些程式碼印出在終端機上,想要有顏色輸出就又是另外一回事了。

舉個例子,以下是我直接使用 cat 指令印出某份 python 檔案的情況。

你會發現這份檔案完全沒有上色,預設是黑白的。短一點的程式還好,若是非常長的程式或設定,恐怕會看得眼睛發痠。

所以我希望能把這些印出的文件顯示出顏色!據我所知,我們有兩種工具可以選擇:

  1. python-pygments
  2. highlight

Pygments

這是一個 python 套件,我們可以使用 pip 套件管理工具來安裝,安裝好後在命令列自然就可會有 pygmentize 指令可以使用。

pip3 install pygments


之後如果要讓打印出的文件上色,可以使用 pygmentize <file_name>


highlight

另一個方法就是使用 Linux 中的 highlight 指令。首先我們進行安裝。

sudo apt install highlgiht


之後,我們設定輸出模式為 ANSI,就可以打印出高亮的文本內容了。

highlight -O ansi <file_name>


Output:


References


Read More

Leave a Reply