すべてのgitコマンドからカラー出力を取得するには、次のように設定しました。
git config --global color.ui true
ただし、これにより次の出力が生成されますgit diff
。git log
そしてshowのようなコマンドがgit status
良いでしょう
特定のコマンドでエスケープされたカラーコードだけが認識されない理由と回避策は何ですか?
私はxterm-256color
OS X 10.8.2でiTerm 2(ターミナルタイプ)を使用しており、シェルではzshを使用しています。
zsh --version
zsh 5.0.0 (x86_64-apple-darwin12.0.0)
git --version
git version 1.7.9.6 (Apple Git-31.1)
答え1
エスケープシーケンスは端末に表示色を変更するように指示し、エスケープ文字はとして表示され、ESC
望ましい動作はエスケープシーケンスが意図した効果を持つことがわかります。
そしてパイプのようなgit diff
コマンドはgit log
出力を携帯用小型無線ポケットベル、less
基本的に。 Gitは制御文字に制御効果を発揮するように指示しようとしますless
が、機能しません。
less
それがあなたのポケットベルですが、LESS
環境変数を-r
orを含まない値に設定した場合、gitは色を表示するように言うことは-R
できません。less
通常は通過しますLESS=-FRSX
が、LESS
環境に設定されている場合は通過しません。回避策は、呼び出し時に色を表示するようにgitに指示する-R
オプションを明示的に渡すことです。less
git config --global core.pager 'less -R'
less
ポケットベルでない場合は、ポケットベルに切り替えるか、less
ポケットベル表示色を作成する方法を学びます。
ポケットベルを呼び出すときにGitが色を表示しないようにするには、代わりcolor.ui
に設定します。auto
true
答え2
以下がある場合でも、この出力を表示できます。忙しい箱。アルパインLinuxそれを使った普及したディストリビューションの良い例です。バラよりhttps://wiki.alpinelinux.org/wiki/Alpine_Linux:FAQ#How_to_enable.2Ffix_colors_for_git.3F
現在Busyboxを使用していることを確認する簡単な方法は、次を実行することです。
realpath `which less`
またはあなたが使用している場合魚の皮
realpath (which less)
出力が次の場合は、インストール/bin/busybox
して問題を解決できます。少ない。
アルプスから:
sudo apk --update add less
コマンドは、デプロイ/パッケージ管理者によって異なります。
答え3
改善されたザイルズ回答、git configで使用して、以前の$LESS
オプション(git configなど)を維持できます~/.gitconfig
。
[core]
pager = less -+$LESS -FRX