Pertanyaan Warna dalam bash setelah pemipaan melalui lebih sedikit?


Ketika saya dircolors hidup didefinisikan penuh ... warna.

Ketika saya pipa ls melalui less untuk menggulir di sekitar saya kehilangan warna.

Ada saran?


93
2018-06-16 13:30






Jawaban:


Kemungkinan besar Anda ls adalah alias ls --color=auto, yang memberi tahu ls untuk hanya menggunakan warna ketika outputnya adalah tty. Jika kamu melakukan ls --color (yang secara moral setara dengan ls --color=always), yang akan memaksa untuk mengaktifkan warna.

Anda juga bisa mengubah alias Anda untuk melakukan itu, tetapi saya tidak akan benar-benar menyebutnya sebagai ide yang bagus. Lebih baik membuat alias yang berbeda dengan --color.

less kebutuhan -Rjuga.


95
2018-06-16 13:38



Mengapa Anda tidak menyebutnya ide bagus untuk alias ls ls --color atau ls --color=always, untuk masalah itu? - j08lue
@ j08lue jika Anda menyalurkan melalui perintah yang tidak menangani warna, Anda mendapatkan beberapa karakter sampah yang dapat mengacaukan perintah. Misalnya, saya lakukan ls --color=always | less dan mendapatkan: ESC[01;32mexecute_once.shESC[0m (Saya tahu ini sudah tua dan Anda mungkin tidak peduli, tetapi untuk pengunjung di masa mendatang, ini mungkin berguna) - Ryan Amos
@RyanAmos sebagai pengunjung mendatang, terima kasih. :) - malvim


Coba lebih sedikit dengan opsi -R seperti ini:

command | less -R

Ini bekerja untuk saya dalam satu baris seperti ini:

ls -la | grep --color=always bash | less -r

Dan seperti ini juga:

ls --color | less -R

Tetapi Anda harus men-tweak output utama (output dari ls dalam kasus ini) sedikit dengan parameter --color.


51
2018-06-16 13:33



Terima kasih, ini juga berfungsi untuk ack-grep. ack-grep my_string --color | kurang -R - igniteflow
--warna tidak dikenali: ls: opsi ilegal - - Menjalankan bash di osx. - Scott Biggs
@Scott Biggs: di OSX tidak ada --warna; coba ls -G
@ Lu-Chi, Bahkan dengan -G, warna-warna itu hilang - Iulian Onofrei
Di OS X Anda perlu mengatur variabel lingkungan CLICOLOR_FORCE (menjadi apa pun) ketika output ls tidak diarahkan ke terminal. Ini berfungsi untuk saya: CLICOLOR_FORCE = ls -G | kurang -R - jooon