it-swarm-id.com

Bisakah lebih sedikit mempertahankan keluaran berwarna?

Bisakah saya mendapatkan lebih sedikit untuk tidak monokrom outputnya?

E.g., output dari git diff berwarna, tapi git diff | less tidak.

364
ripper234

Menggunakan:

git diff --color=always | less -r

--color=always ada di sana untuk memberi tahu git untuk menampilkan kode warna meskipun outputnya berupa pipa (bukan tty). Dan -r ada di sana untuk memberi tahu less untuk menafsirkan kode warna tersebut dan urutan pelarian lainnya. Gunakan -R hanya untuk kode warna ANSI.

435

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 .

Nilai yang mungkin untuk color.ui dapat ditemukan di halaman manual git-config. Output dari man git-config | grep "color.ui$" -A8 adalah

color.ui
    This variable determines the default value for variables such as color.diff and
    color.grep that control the use of color per command family. Its scope will expand as
    more commands learn configuration to set a default for the --color option. Set it to
    false or never if you prefer Git commands not to use color unless enabled explicitly
    with some other configuration or the --color option. Set it to always if you want all
    output not intended for machine consumption to use color, to true or auto (this is the
    default since Git 1.8.4) if you want such output to use color when written to the
    terminal.

Gunakan -r (--raw-control-chars) opsi untuk kurang, atau juga -R (hanya urutan pelarian ANSI).

Saya memiliki alias untuk ini di ~/.bashrc

alias rless='less -r'
29
enzotib

_ tree juga memiliki opsi untuk memaksa warna:

tree -C | less -r

Dan seterusnya untuk ls:

ls -lR --color | less -r
17

Hanya untuk menambahkan versi lain pada "use less -r":

Gunakan variabel lingkungan LESS dengan nilai r (atau tambahkan r ke apa pun yang sudah ada)

E.g., seperti yang saya gunakan di .bashrc Saya:

export LESS=-Xr

X berhenti layar dari kliring ketika keluar lebih sedikit.

11
MortenSickel

Jika ada orang yang tertarik untuk melakukan paging json dengan jq dan less hal 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

9
dimid

Saya tahu ini sudah tua dan banyak yang sudah memberikan jawaban yang benar tetapi saya ingin menambahkan bahwa selalu lebih baik menggunakan less -R dan tidak less -r jika Anda hanya membutuhkan warna ANSI sebagai -rmungkin masalah kasus 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
6
Naheel