最近,我切換到SLES 11.我發現git命令有問題。所有的ANSI顏色都不能被渲染。相反,它顯示了ANSI代碼:git中的ANSI顏色顯示不正確
* ESC [33米 *提交0a02124a0fd85c1f0094bcdf15bac1645e3c8630ESC [M
注:在 'LS' 的作品ANSI色非常好。
最近,我切換到SLES 11.我發現git命令有問題。所有的ANSI顏色都不能被渲染。相反,它顯示了ANSI代碼:git中的ANSI顏色顯示不正確
* ESC [33米 *提交0a02124a0fd85c1f0094bcdf15bac1645e3c8630ESC [M
注:在 'LS' 的作品ANSI色非常好。
嘗試設置你的LESS
環境變量包括-R
選項:
LESS=-R git grep ...
如果一切正常,添加export LESS=-R
您~/.bashrc
或~/.profile
或類似的shell啓動文件。
-R or --RAW-CONTROL-CHARS
Like -r, but only ANSI "color" escape sequences are
output in "raw" form. Unlike -r, the screen
appearance is maintained correctly in most cases.
ANSI "color" escape sequences are sequences of the
form:
ESC [ ... m
where the "..." is zero or more color specification
characters
好的,我明白了。這個問題與變量LESS有關。
以下行解決這個問題:
export LESS="-erX"
您應該使用「-erX」的「-eRX」intead(每個sarnold的答案,如上所示)。如果你使用「-r」而不是更少,會直接通過其他控制字符(你可能不需要),並且更少不能正確地確定輸出行的數量,所以一些滾動屏幕(你絕對不會想)。 「-e」和「-X」的使用與解釋顏色轉義序列無關。 「-e」會導致在第二次點擊文件結尾時自動退出,「-X」「禁止發送termcap初始化和取消初始化字符串到終端。」 – craigster0
的問題,正如其他人所指出的,是你的終端是好的,但是當Git的調用尋呼機,它不能正確解釋ANSI顏色代碼。
我開始了由你重置您的環境中LESS
;這聽起來像你以前可能已經將它設置爲模糊Git所需的東西。如果解決了這個問題,那你就是。如果您確實需要自定義LESS
,請注意,Git默認爲FRSX
,因此如果不需要,請謹慎更改。
如果做無論出於何種原因要在你的環境,你要哪個GIT中不同LESS
,理想的方式來處理Git和尋呼機是通過core.pager
配置變量。引用手冊頁:
git將用於分頁輸出的命令。可以用GIT_PAGER環境變量覆蓋。請注意,如果git在運行尋呼機時未設置,那麼git會將LESS環境變量設置爲FRSX。可以通過將LESS變量設置爲其他值來更改這些設置。或者,可以通過設置core.pager選項在項目或全局基礎上覆蓋這些設置。設置core.pager對上面的LESS環境變量行爲沒有影響,所以如果你想以這種方式覆蓋git的默認設置,你需要明確。例如,要以向後兼容的方式禁用S選項,請將core.pager設置爲
less -+$LESS -FRX
。這將通過git傳遞給shell,這會將最終命令轉換爲LESS=FRSX less -+FRSX -FRX
。
結合一些你想要的選項的知識,應該讓你到你想要的地方。 (花式向後兼容的方法通過禁用當前在LESS
中的所有選項,然後添加你想要的。)
在Git中,你可以改變您的尋呼機使用-R
選項:
git config --global core.pager "less -R"
我必須首先解除它,然後在引號中加上'less -R'。儘管如此。 – mtfurlan
對於我來說,這並不工作:
git config --global core.pager less -R
於是我又追加了以下內容我的〜/ .gitconfig文件
[core]
pager = less -R
要測試它,我沒有
git log --graph --pretty=format:"%C(yellow)%h%Creset%C(blue)%d%Creset %C(white bold)%s%Creset %C(white dim)(by %an %ar)%Creset" --all
你也可以嘗試「--no-pager」開關。例如「git - 無圖差異」 –
我有類似的問題,在Laravel工匠和Symfony的遊戲機在Git的ANSI顏色轉義序列爲Windows v2.7.1。這裏提到的LESS
解決方案沒有解決問題。
由於混帳的Windows打開終端與bash --login -i
,該行進入後終端開始做的工作對我來說:
bash
我有同樣的問題。但爲什麼我需要在一臺機器上配置git,而不需要另一臺?我想解決這個問題的來源,因爲
混帳配置--global core.pager「少-R」
看起來像我的一個解決方法。
這可能是http://stackoverflow.com/questions/6983305/how-to-fix-git-log-output-missing-lines-in-less的重複 - 假設你考慮到sehe的答案。 (我真的不知道爲什麼人們試圖設置'LESS'來幫助Git - 它知道它需要什麼。) – Cascabel
我已經將LESS設置爲使用其他設置。 – ben3000