終端機使用技巧¶
以下是一些關於如何在終端機上更有效使用 Pygments 的技巧。
如何判斷我正在使用哪個 Shell?¶
執行以下指令
$ echo $SHELL
我的輸出是 /usr/bin/fish
,這是可執行檔的位置。這表示我的電腦正在使用 fish shell。neofetch
(或類似的工具)也可以提供該資訊。
大多數 shell 都符合 POSIX 標準。
別名 (POSIX)¶
符合 POSIX 標準的 shell 包括 bash
和 zsh
,以及大多數 shell。
別名允許您使用不同的名稱呼叫函式。在這種情況下,它會使用不同的名稱呼叫 pygmentize。最簡單的做法是建立一個名為 cath
的別名
$ alias cath="pygmentize"
唯一的問題是 pygmentize 的運作方式與 cat
不太一樣。但它允許您使用一個類似 cat 的指令來顯示檔案。
可以根據需要新增其他標誌。monokai 樣式在深色背景下效果很好,以下是如何新增該選項的方法
$ alias cath="pygmentize -O style=monokai"
以下是一個具有語法突顯的 less
版本。它稍微複雜一點,因為它使用環境變數 LESSOPEN
來預處理輸入檔案
$ alias lessh='LESSOPEN="| pygmentize -O style=monokai %s" less -M -R '
這些別名指令需要新增到您的設定中,才能在您開啟新終端機(或重新啟動電腦)時生效。
將上述指令新增到您的設定檔中
bash
- 編輯~/.bash_aliases
(如果存在)或~/.bashrc
檔案。csh
(C shell),編輯~/.cshrc
檔案ksh
(Korn shell),編輯~/.kshrc
檔案。tcsh
,編輯~/.tcshrc
檔案。zsh
,編輯~/.zshrc
檔案。
為了將變更套用到目前的 shell 環境系統:在剛剛編輯的檔案名稱上執行 source
$ source [~/.filenamerc]
別名 (fish shell)¶
上述用於 POSIX 的別名可以正常運作,但在 fish shell 中永久儲存別名的方式稍有不同。函式用於建立永久別名。funced [指令]
用於建立函式,然後 funcsave [指令]
將函式儲存到環境中。
執行 funced cath
會開啟預設的編輯器,並在函式中新增以下程式碼
function cath
# 'cath' alias will highlight source code as cat does.
alias cath="pygmentize"
end
以下是具有額外引數的 cath
函式的樣子
function cath
alias cath="pygmentize -O style=monokai"
end
注意:就像 POSIX shell 一樣,您可以在命令列上執行 alias cath="pygmentize -O style=monokai"
以預先測試別名。
測試 cath
函式。若要儲存函式,請執行 funcsave cath
。這會儲存函式以供未來的工作階段使用。
funced lessh
,它稍微複雜一點,因為它使用環境變數 LESSOPEN
來預處理輸入檔案
function lessh
LESSOPEN="| pygmentize -O style=native %s" less -M -R $argv
end
測試 lessh
函式。若要儲存函式,請執行 funcsave lessh
。