終端機使用技巧

以下是一些關於如何在終端機上更有效使用 Pygments 的技巧。

如何判斷我正在使用哪個 Shell?

執行以下指令

$ echo $SHELL

我的輸出是 /usr/bin/fish,這是可執行檔的位置。這表示我的電腦正在使用 fish shell。neofetch(或類似的工具)也可以提供該資訊。

大多數 shell 都符合 POSIX 標準。

別名 (POSIX)

符合 POSIX 標準的 shell 包括 bashzsh,以及大多數 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