給LESS增加語法顯示

weixin_34389926發表於2017-06-04

經常用less檢視檔案內容,但是預設的顯示沒有語法彩色顯示,不容易分辨各種文件。(注:這裡說的less是shell命令,不是 CSS 預處理語言

1749344-cd6e1c60908e7cfa.png
預設的less效果

自定義了一個指令碼檔案cless,輸出就不再是原來的預設效果,有了語法彩顯,檢視程式碼或是指令碼就方便很多了。

1749344-72d9d4ac47bb840a.png
增加彩色語法顯示

設定非常簡單,利用pygments來作為彩色引擎,據官方介紹,它支援300+種語言的語法顯示!

  • 安裝下載 pygments
pip install pygmentize 

如果沒有許可權,請在前面加上sudo

  • 寫指令碼檔案 /usr/local/bin/cless
#!/bin/sh

## 使用 pygmentize -L styles 可以檢視所有支援的風格
# (default emacs friendly colorful autumn murphy manni monokai perldoc pastie borland trac native fruity bw vim vs xcode igor paraiso-light paraiso-dark lovelace algol algol_nu arduino rainbow_dash abap)

if [[ -n "$1" ]]; then
    # 常規方式開啟檔案 'cless <file>
    ## 估計檔案的語法型別,若不支援會返回`text`型別
    lexer=$(pygmentize -N "$1")
    pygmentize -f 256 -l "$lexer" -O style=monokai "$1" | less -R;
else
    # 接受管道輸入資料, 'cat <file> | cless'
    pygmentize -f 256 -O style=monokai | less -R;
fi

是不是很簡單?一個支援語法彩色顯示的shell功能就完成了:-)

1749344-9e393a12a84f06f8.png
Python 格式
1749344-cecf5519f5cd6d96.png
CMake
1749344-2c9a3cab3bbf89e8.png
XML

相關文章