Colors

顏色編碼的 git diff -> less 不能正確顯示顏色

  • June 24, 2021

我在 SLES11 機器上遠端工作(我很不幸)。在這台機器上,我正在使用 git,特別是git diff,它將結果傳遞給less一些著色。現在,由於某種原因,我看到的不是顏色,而是如下所示的線條:

ESC[1mdiff --git a/path/to/file.h b/path/to/file.hESC[m
ESC[1mindex 1ab153f..0491db9 100644ESC[m

等等

我知道終端支持顏色(ls 結果是彩色的);我有TERM=xterm並且COLORTERM=1在我的環境中。

如何讓彩色差異正確顯示?

正如terdon 所說less’ 預設行為是以cat -v樣式顯示特殊字元的等價物。less -R將改變這一點,以便將轉義序列傳遞給正在處理顯示的任何內容。

less的預設值可以用LESS環境變數指定,例如

export LESS=-R

git對尋呼機應該做什麼有自己的想法。如果沒有設置環境變數,呼叫時LESS會設置為,符合預期;如果設置了,它將保持不變,如果不包含.FRX``less``git``LESS LESS``-R

有兩種配置less使用的方法:要麼使用變數git全域配置它,要麼更改設置例如LESScore.pager

git config --global core.pager "less -R"

引用自:https://unix.stackexchange.com/questions/655631