Renkli çıktıyı daha az koruyabilir mi?


Yanıtlar:


360

kullanın:

git diff --color=always | less -r

--color=alwaysgitçıktı bir boru olsa bile (renk tty) çıktı renk kodlarını söylemek için orada . Ve bu renk kodlarını ve diğer kaçış dizilerini yorumlamayı -rsöylemek var less. -RYalnızca ANSI renk kodları için kullanın .


3
@ ripper234. Son zamanlardaki gits ile git config color.ui truerenkli çıktı elde etmek ve uzun çıktılar için otomatik olarak çağrı cihazı çalıştırmak için yeterli olmalıdır .
Stéphane Gimenez

4
Bu Q / A'ya paralel olarak watch --color 'git diff --cached --color=always've arkadaşları da size bazı ek takılmalar getirebilir.
Alois Mahdal

27
less -RDaha iyi (veya export LESS=Riçeride /etc/profile) kullanmıyor mu? ANSI "renkli" kaçış dizileri dışında neden bir şey göstermesine izin veriyorsun? Ayrıca, man sayfasındaki diyor kiWarning: when the -r option is used, less cannot keep track of the actual appearance of the screen (since this depends on how the screen responds to each type of control character). Thus, various display problems may result, such as long lines being split in the wrong place.
x-yuri

5
Ve -rseçeneği belirtmeyi unuttuysanız , sadece lessistemde "-r" yazabilirsiniz . Bu elbette daha az seçenekle veya daha az seçenekle çalışır (yani, -igörmezden gelinmeyi açmak için).
haridsv

3
grep --color=alwaysaynı şekilde çalışır. Bu, bu sorunun ya da cevabın bir parçası değil, ama o soru hakkında Google'dan geldim.
Frank Bryce,

57

Başka bir seçenek de renkleri etkinleştirmek ve çağrı cihazınız olarak 'less -r' kullanmaktır.

git config --global color.ui true
git config --global core.pager 'less -r'

Bu sonuçlanır

[color]
    ui = true
[core]
    pager = less -r

~ / .gitconfig'inizde

Daha fazla bilgi için Pro Git kitabına bakın .


7
Git 2.11'i kullanarak bunun color.ui truebir çağrı cihazıyla çalışmadığını, ancak çalıştığını tespit ettim color.ui always. Cevap gönderildiğinden bu durum değişmiş olabilir.
Tom Zych

1
Bu seçenek (renkleri etkinleştirmek ve varsayılan olarak çağrı cihazınız olarak 'daha az -r'yi kullanmak için) ile ve daha önceki sürümlerde bile (örneğin tüm çıktıları varsayılan olarak $ PAGER'a aktarın) anlamına gelir ( color.ui trueörneğin , varsayılan olarak bu ) , Git 1.7.1). Ancak , doğrudan ya da belirlediğinizde renkli çıktı alabilmek için (çıktıya renk çıkışı "çıktısını" çıktı bir boru olsa bile (bir tty değil) ")) gerekir . Çıktı yönlendirmesini açık bir şekilde belirttiğinizde, çağrı cihazından çıktıktan sonra çıktıyı göremezsiniz. git -p diffgit -p status-plesscolor.ui alwaysgit status | less -rgit diff | less -r
kenichi

29

Daha azına veya) -r( --raw-control-chars) seçeneğini kullanın ( -Ryalnızca ANSI kaçış dizileri).

Bunun için bir takma ad var ~/.bashrc

alias rless='less -r'

7
Aslında daha yeni yaptım alias less='less -r'. Yapmamak için bir sebep var mı?
ripper234

3
@ ripper234: Belli ki, -rgerekmediğinde kullanıldığında görselleştirme sorununa yol açabileceği durumlar olabileceğini açıkça hatırlıyorum .
enzotib

1
Mesela, sen boru zaman ackile less -rsize bir satır başı kaybetmek
Yeni İskenderiye

6
\lessGörselleştirme karışırsa kullanabilirsiniz .
Brian Peterson

4
Ah, takma gerekmez less, sadece ayarlayın şey $LESSher zaman için sağlamak istediğiniz bayrakların setine ortam değişkeni less, örneğinexport LESS='-MRq -z-2 -j2’
wjv

14

Ayrıca treerenkleri zorlamak için bir seçenek vardır:

tree -C | less -r

Ve bunun için ls:

ls -lR --color | less -r

10

Sadece "use less -r" ye başka bir sürüm eklemek için:

LESS çevre değişkenini r değeriyle kullanın (veya ne olursa olsun r ekleyin)

örneğin, .bashrc dosyamda kullandığım gibi

  export LESS=-Xr

(X, daha az çıkarken ekranın temizlenmesini durdurur)


1
maalesef -X ayrıca benim için fareyi
kaydırıyor


3

Bu eski olduğunu biliyorum ve pek zaten doğru cevabı vermiş ama her zaman kullanmak iyi olduğunu eklemek istiyorum less -Rdeğil less -rgibi sadece ANSI renkleri gerekirse -rkarakterleri görüntüleme konusunda sorunlar harf olabilir.

Kılavuzdan:

   -r or --raw-control-chars
          Causes "raw" control characters to be displayed.   The  default
          is  to display control characters using the caret notation; for
          example, a control-A (octal 001) is displayed as  "^A".   Warn‐
          ing:  when the -r option is used, less cannot keep track of the
          actual appearance of the screen (since this depends on how  the
          screen responds to each type of control character).  Thus, var‐
          ious display problems may result,  such  as  long  lines  being
          split in the wrong place.

   -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
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.