Bisakah saya mendapatkan lebih sedikit untuk tidak monokrom outputnya?
Misalnya, output dari git diffberwarna, tetapi git diff | lesstidak.
lesshanya tentang .
Bisakah saya mendapatkan lebih sedikit untuk tidak monokrom outputnya?
Misalnya, output dari git diffberwarna, tetapi git diff | lesstidak.
lesshanya tentang .
Jawaban:
Menggunakan:
git diff --color=always | less -r
--color=alwaysada di sana untuk memberitahu gitkode warna output bahkan jika output adalah pipa (bukan tty). Dan -rapakah ada untuk memberitahu lessuntuk menafsirkan kode warna dan urutan pelarian lainnya. Gunakan hanya -Runtuk kode warna ANSI.
git config color.ui trueharus cukup untuk mendapatkan keluaran berwarna, dan secara otomatis menjalankan pager untuk keluaran lama.
watch --color 'git diff --cached --color=always'dan teman-temannya dapat memberi Anda beberapa kedahsyatan tambahan.
less -Rlebih baik (atau export LESS=Rdalam /etc/profile)? Mengapa Anda mengizinkannya menampilkan apa pun selain urutan pelarian "warna" ANSI? Juga, halaman manual mengatakanWarning: 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.
-ropsi, Anda bisa mengetik "-r" di lessprompt. Ini tentu saja bekerja dengan sebagian besar atau lebih sedikit opsi (mis. -iUntuk mengaktifkan ignorecase).
grep --color=alwaysbekerja dengan cara yang sama. Ini bukan bagian dari pertanyaan atau jawaban ini, tapi saya dapatkan di sini dari googling tentang pertanyaan itu jadi itu dia.
Pilihan lain adalah mengaktifkan warna dan menggunakan 'less -r' sebagai pager Anda.
git config --global color.ui true
git config --global core.pager 'less -r'
Ini menghasilkan
[color]
ui = true
[core]
pager = less -r
di ~ / .gitconfig Anda
Untuk informasi lebih lanjut, lihat buku Pro Git .
color.ui trueitu tidak bekerja dengan pager, tetapi color.ui alwaysberhasil. Ini mungkin telah berubah sejak jawabannya diposting.
color.ui truemelakukan pekerjaan untuk perintah seperti git -p diffdan git -p status(di mana -partinya menyalurkan semua output ke $ PAGER, secara default itu less) bahkan untuk versi git yang agak lama (misalnya , Git 1.7.1). Tetapi Anda masih perlu color.ui always(yang memberitahu git untuk mengeluarkan kode warna "bahkan jika keluarannya berupa pipa (bukan tty)") untuk mendapatkan keluaran berwarna ketika Anda secara langsung menentukan git status | less -ratau git diff | less -r. Ketika Anda menentukan pengalihan output secara eksplisit, Anda tidak akan melihat output setelah keluar dari pager.
Gunakan opsi -r( --raw-control-chars) untuk lebih sedikit, atau juga -R(hanya urutan pelarian ANSI).
Saya memiliki alias untuk ini di ~/.bashrc
alias rless='less -r'
alias less='less -r'. Ada alasan untuk tidak melakukannya?
-rketika tidak diperlukan dapat menyebabkan masalah visualisasi.
ackdengan less -rAnda kehilangan carriage return
\lessjika visualisasi kacau.
lessapa pun, cukup atur $LESSvariabel lingkungan ke set flag yang selalu ingin Anda berikan less, misalnyaexport LESS='-MRq -z-2 -j2’
Juga treememiliki opsi untuk memaksa warna:
tree -C | less -r
Dan seterusnya untuk ls:
ls -lR --color | less -r
Hanya untuk menambahkan versi lain pada "gunakan less -r":
gunakan variabel lingkungan KURANG dengan nilai r (atau tambahkan r untuk apa pun yang sudah ada)
misalnya, saat saya menggunakannya di .bashrc saya
export LESS=-Xr
(X menghentikan layar dari kliring ketika keluar lebih sedikit)
Dalam hal siapa pun tertarik untuk mencari json dengan jqdan lessitu dapat dicapai dengan menggunakan:
jq -C <jq args> file.json | less -R
misalnya
jq -C . file.json | less -R
Sumber: https://github.com/stedolan/jq/issues/764#issuecomment-95355331
Saya tahu ini sudah lama dan banyak yang sudah memberikan jawaban yang benar, tetapi saya ingin menambahkan bahwa itu selalu lebih baik untuk digunakan less -Rdan tidak less -rjika Anda hanya membutuhkan warna ANSI karena -rmasalah masalah dalam menampilkan karakter.
Dari manual:
-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