Lincah. Output warna disalurkan menjadi lebih sedikit

35

Sistem operasi: Mac OS 10.6.2

Saya ingin dapat melihat keluaran warna saat memipakan perintah tertentu melalui lebih sedikit.

Dua contoh:

Saya punya alias ls --color=auto, jadi saya ingin dapat melihat warna ketika saya melakukan ini:

ls -l | less

Saya juga mengaktifkan ekstensi warna di Mercurial, jadi saya ingin melihat keluaran warna dari:

hg diff | less

dan

hg st | less

Setelah beberapa googling, sepertinya beberapa versi yang kurang mendukung -r atau -R untuk membuat ini berfungsi, tetapi tidak ada dadu untuk saya. Saya tidak dapat melihat apa pun di halaman manual yang terlihat seperti yang saya butuhkan. (-r atau -R TAMPAKKAN menjadi opsi yang tepat, tetapi sekali lagi, tampaknya tidak berfungsi)

mmacaulay
sumber
1
Sepertinya ekstensi warna selalu dinonaktifkan ketika disalurkan. Coba perintah ini untuk melihat apa yang saya maksud: ls --color=always | ls -Rdanhg diff --config color.mode=ansi | less -R
Harvey

Jawaban:

30

Untuk lincah, Anda harus menggunakan ekstensi pager daripada pemipaan secara eksplisit menjadi kurang. Ini akan bermain dengan baik dengan opsi keluaran berwarna dari perintah hg lainnya.

richq
sumber
13

Saya percaya Anda harus menggunakan --color=alwaysuntuk lsjika Anda ingin lakukan warna bahkan ketika tidak akan stdout. Kemudian gunakan -rpada lessperintah

ls --color=always -l | less -r
Brandon Bodnar
sumber
12

Dalam ~ / .hgrc Anda, cantumkan:

[extensions]
color =
pager =

[pager]
pager = LESS='FRSXQ' less
quiet = True
attend = outgoing,incoming,diff,status,log,qdiff,blame,annotate,pdiff,glog
Joe HG
sumber
Mengapa quiet = Truebagian?
einpoklum - mengembalikan Monica
Bagus! Saya sarankan LESS='eiFRSXQ'untuk juga berhenti setelah mencapai EOF dan mengabaikan kasus selama pencarian
sebastian
11

Melakukan:

$ hg diff --color always | less -R

Saya akan alias "kurang -R" menjadi kurang. Saya tidak yakin apakah ada cara untuk memberikan pilihan default untuk perintah lincah sehingga Anda tidak harus ingat untuk mengetik --color alwaysuntuk hg diffsepanjang waktu.

kereta kuda
sumber
1
Atau gunakan $ hg diff --color always | less -FRSXQuntuk opsi yang lebih sedikit lebih baik. Ini akan diam-diam berhenti jika diff cocok dengan layar, misalnya.
jpbochi
1
Anda dapat mengatur KURANG = "- R" sebagai alternatif untuk alias "kurang" itu sendiri.
blueyed
-Fadalah untuk terus membaca file saat ini sedang diproduksi, -Stidak untuk membungkus baris, -Xsesuatu yang tidak jelas, -Qmenghindari dering bel terminal.
Evgeni Sergeev
2

Jika Anda tidak ingin menggunakan Ekstensi Pager untuk luring Anda dapat menggunakan perintah berikut:

hg diff | cdiff
Orang yang baik
sumber
0

ls --color=autoberarti Anda mendapatkan keluaran warna saat tidak disalurkan ke sesuatu. Coba ls --colour=auto | catdan Anda akan melihat apa yang saya maksud.

Saya berharap hg membuat asumsi serupa.

keturn
sumber