this thread によると、less
自体は構文の強調表示を行うことができません。
ただし、git diff
は、デフォルトのページャーであるカラー出力を少ない色でうまく表示します。 git diff
の出力をファイルにリダイレクトすると、カラーエスケープシーケンスが表示されません。
git diff
は、送信先を知っており、それに応じて出力をフォーマットしますか?どうすればいいの?
Gitがdiff
の出力(例:git diff
)に色を付けることに気づきましたが、一般的に構文を強調表示する方法がわかりません。例えば.
git show 415fec6:log.tex
teXに似た構文を有効にしません。
git
ソースを読んで、私は次のヒントを見つけました
diff.h
:
int use_color;
以前は構文の強調表示を参照していましたが、それは正しくありませんでした。私が意味することは、出力の色付けです。
ランニング:
git diff --color=always > output
エスケープを示します。
いまいましいgit
のcolor.c
ファイル:
static int check_auto_color(void)
{
if (color_stdout_is_tty < 0)
color_stdout_is_tty = isatty(1);
if (color_stdout_is_tty || (pager_in_use() && pager_use_color)) {
char *term = getenv("TERM");
if (term && strcmp(term, "dumb"))
return 1;
}
return 0;
}
less
は-r
--raw-control-chars
および-R
--RAW-CONTROL-CHARS
で色をサポートできます
Python pygmentize
を使用して強調表示を行い、それをパイプすることができます。
それをすべて組み合わせるには、より少ないフィルターを設定します スーパーユーザーで説明されているように