GNU/Linux >> Belajar Linux >  >> Linux

Saat membaca file dengan `kurang` atau `lebih`, bagaimana saya bisa mendapatkan konten berwarna?

Coba yang berikut ini:

less -R

dari man less :

-r atau --raw-control-chars

Menyebabkan karakter kontrol "mentah" ditampilkan. (...)

-R atau --RAW-CONTROL-CHARS

Seperti -r , tetapi hanya urutan escape "warna" ANSI yang dihasilkan dalam bentuk "mentah". (...)


(pembaruan pada 2020)

Cara yang lebih cepat akan menggunakan less -R ref. https://superuser.com/a/117842/34893

Anda dapat memanfaatkan kekuatan pygmentize dengan lebih sedikit - secara otomatis! (Tidak perlu menyalurkan dengan tangan.)

Instal pygments dengan manajer paket atau pip Anda (mungkin disebut python-pygments ) atau dapatkan di sini http://pygments.org/download/.

Tulis file ~/.lessfilter

#!/bin/sh
case "$1" in
    *.awk|*.groff|*.java|*.js|*.m4|*.php|*.pl|*.pm|*.pod|*.sh|\
    *.ad[asb]|*.asm|*.inc|*.[ch]|*.[ch]pp|*.[ch]xx|*.cc|*.hh|\
    *.lsp|*.l|*.pas|*.p|*.xml|*.xps|*.xsl|*.axp|*.ppd|*.pov|\
    *.diff|*.patch|*.py|*.rb|*.sql|*.ebuild|*.eclass)
        pygmentize -f 256 "$1";;

    .bashrc|.bash_aliases|.bash_environment)
        pygmentize -f 256 -l sh "$1";;

    *)
        if grep -q "#\!/bin/bash" "$1" 2> /dev/null; then
            pygmentize -f 256 -l sh "$1"
        else
            exit 1
        fi
esac

exit 0

Di .bashrc Anda tambahkan

export LESS='-R'
export LESSOPEN='|~/.lessfilter %s'

Juga, Anda perlu membuat ~/.lessfilter dapat dieksekusi dengan menjalankan

chmod u+x ~/.lessfilter

Diuji pada Debian.

Anda mengerti. Ini tentu saja dapat ditingkatkan lebih lanjut, menerima lebih banyak ekstensi atau mengurai shebang untuk penerjemah lain selain bash. Lihat beberapa jawaban lain untuk itu.

Idenya berasal dari postingan blog lama dari pembuat Pygments, tetapi postingan aslinya sudah tidak ada lagi.


Saya mendapat jawabannya di posting lain:Less and Grep:Mendapatkan hasil berwarna saat menggunakan pipa dari grep ke less

Saat Anda menjalankan grep --color itu menyiratkan grep --color=auto yang mendeteksi apakah output adalah terminal dan jika memungkinkan warna. Namun, ketika mendeteksi pipa, pewarnaan akan dinonaktifkan. Perintah berikut:

grep --color=always "search string" * | less -R

Akan selalu mengaktifkan pewarnaan dan mengganti deteksi otomatis, dan Anda akan mendapatkan penyorotan warna dalam jumlah kecil.

Peringatan:Jangan masukkan --color=always sebagai alias, kadang-kadang merusak barang. Itu sebabnya ada --color=auto opsi.


Linux
  1. Bagaimana skrip bash dapat mengetahui direktori tempat ia diinstal ketika bersumber dari . operator?

  2. Bagaimana saya bisa mendapatkan status keyboard di Linux?

  3. Cara mendapatkan ukuran file tar.gz dalam (MB) dengan python

  1. Bagaimana saya bisa menemukan file terlama di pohon direktori

  2. Bagaimana saya bisa menambahkan alamat IPv6 dengan ID lingkup ke file konfigurasi ssh?

  3. Bagaimana cara mengganti konten kolom tertentu dengan awk?

  1. Bagaimana saya bisa mendapatkan jumlah memori yang tersedia secara portabel di seluruh distribusi?

  2. Bagaimana saya bisa mendapatkan biner dari file .py

  3. Bagaimana cara mendapatkan ukuran fisik file di Linux?