Git çağrı cihazı daha az, ancak çıktı renklendirmesine ne sebep oluyor?


19

lessbu konuya göre kendisi sözdizimi vurgulama yapamaz .

Bununla birlikte, git diffrenkli çıktıyı varsayılan çağrı cihazı olarak daha az gösterir. Çıktısını git diffbir dosyaya yönlendirdiğimde hiçbir renk kaçış dizisi görünmüyor.

Mu git diffo davranıyor Gönderilen biliyoruz ve buna göre formatları çıktı? Bunu nasıl yaparsınız?


Git'in diffçıktıyı renklendirdiğini fark ettim (örneğin git diff), ancak genel olarak vurgulama sözdiziminin nasıl yapılacağını bilmiyor. Örneğin

git show 415fec6:log.tex

TeX benzeri bir sözdizimini etkinleştirmez.


Kaynakları okurken, gitaşağıdaki ipuçlarını buldum

içinde diff.h:

int use_color;

Daha önce sözdizimi vurgulamaya atıfta bulunuyordum , ancak bu doğru değildi. Demek istediğim çıktı renklendirme, bkz.

örnek renk çıktısı


1
Gerçek bir sözdizimi vurgulamanız veya kaldırılan ve eklenen satırlar için yalnızca kırmızı ve yeşil renkleriniz var mı?
Paŭlo Ebermann

BTW: git renklendirmeyi daha az içine almak için : git diff --color=always | less -r (veya less -RANSI için). BTW: varsayılan olarak git diffgit -p some_git_command
sayfalama yapmayan

Yanıtlar:



12

Koşu:

git diff --color=always > output

rengin kaçtığını gösterir.

Ben buldum Damn gitbireyin color.cdosyasında:

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;                                                                 
}  

3

lessile renk destekleyebilir -r --raw-control-charsve-R --RAW-CONTROL-CHARS

pygmentizeVurgulamayı yapmak ve içeri çekmek için Pythons kullanabilirsiniz .

Bunları birleştirmek için süper kullanıcıda açıklandığı gibi daha az filtre yapılandırın


bağlantı gerçekten ilginç, teşekkürler. Olmadığını biliyor musunuz gitpygmentize kullanarak aslında? Çünkü bağımlılık olarak listelenmiyor.
Sebastian

btw, çalıştırdığımda git diffalt lessişlem herhangi bir seçenekle eklenmez (ne ne -Rde -r). Ancak, git özel bir şekilde çağırır ve böylece argümanlar görünür değil mi bilmiyorum htop.
Sebastian

gitkendi kendine renk kaçış kodunu çıktılar. Ayrıca cPython eklemek büyük bir bağımlılık olacak şekilde yazılmıştır . lessÇevre ile kontrol edebilir
Matt

1
belki LESSenv var yoluyla ?
Matt

3
Evet, çevreye DAHA AZ = FRX eklenir (bkz. Çağrı cihazı.c ).
ysdx
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.