Bisakah saya mendapatkan lebih sedikit untuk tidak monokrom outputnya?
Misalnya, output dari git diff
berwarna, tetapi git diff | less
tidak.
less
hanya tentang .
Bisakah saya mendapatkan lebih sedikit untuk tidak monokrom outputnya?
Misalnya, output dari git diff
berwarna, tetapi git diff | less
tidak.
less
hanya tentang .
Jawaban:
Menggunakan:
git diff --color=always | less -r
--color=always
ada di sana untuk memberitahu git
kode warna output bahkan jika output adalah pipa (bukan tty). Dan -r
apakah ada untuk memberitahu less
untuk menafsirkan kode warna dan urutan pelarian lainnya. Gunakan hanya -R
untuk kode warna ANSI.
git config color.ui true
harus 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 -R
lebih baik (atau export LESS=R
dalam /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.
-r
opsi, Anda bisa mengetik "-r" di less
prompt. Ini tentu saja bekerja dengan sebagian besar atau lebih sedikit opsi (mis. -i
Untuk mengaktifkan ignorecase).
grep --color=always
bekerja 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 true
itu tidak bekerja dengan pager, tetapi color.ui always
berhasil. Ini mungkin telah berubah sejak jawabannya diposting.
color.ui true
melakukan pekerjaan untuk perintah seperti git -p diff
dan git -p status
(di mana -p
artinya 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 -r
atau 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?
-r
ketika tidak diperlukan dapat menyebabkan masalah visualisasi.
ack
dengan less -r
Anda kehilangan carriage return
\less
jika visualisasi kacau.
less
apa pun, cukup atur $LESS
variabel lingkungan ke set flag yang selalu ingin Anda berikan less
, misalnyaexport LESS='-MRq -z-2 -j2’
Juga tree
memiliki 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 jq
dan less
itu 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 -R
dan tidak less -r
jika Anda hanya membutuhkan warna ANSI karena -r
masalah 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