Etiket: renklendirme

  • Linux’ta less çıktısını renklendirme

    Linux yöneticilerinin çoğunlukla tercih ettiği içerik görüntüleme uygulaması less genellikle text dosya içeriğini görüntüleme ve içerik içinde arama yapma için kullanılabilen hızlı ve hafif bir görüntüleyicidir.

    lessin en büyük eksikliği nano gibi dahili bir içerik renklendiricinin bulunmamasıdır. nano editöründe renklendirme işini bir iki ayar ile halledebilirsiniz. Fakar nano bir editör olduğu için her zaman dosya görüntülemek amacıyla kullanılamıyor. Özellikle çok büyük dosyalarda aşırı hantal kalıyor.

    Ancak aşağıdaki adımları takip ederek less‘te de içerik renklendirme yapabilirsiniz.

    Dikkat: Aşağıdaki adımlar Debian ve türevlerinde iş görmektedir.

    Python kütüphanesi olarak repoda bulunan ve metin renklendirme işleri için kullanılan python-pygments‘i kurarak işe başlıyoruz. Eğer repoda bu ugulama yoksa http://pygments.org/download/ adresinden edinebilirsiniz.

    python-pygments‘i kurmanın iki yolu var birisi repo’dan diğeri pip aracılığı ile. Ben sistem çapında yapılacak değişiklikler için stabiliteyi bozmamak adına repodakini kullanmayı tercih ediyorum.

    # apt install python-pygments

    Kullanıcının less uygulamasını çalıştırdığında dosya uzantılarını tanıyabilmesi için aşağıdaki betiği kullanıcı kök klasöründe oluşturun.

    # nano ~/.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|*.[xy]ml|*.xps|*.xsl|*.axp|*.ppd|*.pov|\
        *.diff|*.patch|*.py|*.rb|*.sql|*.ebuild|*.eclass|*.ini)
            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

    Bu dosyayı aşağıdaki komut ile çalıştırılabilir hale getiriyoruz:

    # chmod u+x ~/.lessfilter

    Daha sonra kullanıcı kök dizinindeki .bashrc dosyasının en altına aşağıdaki satırları ekliyoruz.

    # nano ~/.bashrc

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

    Dosyayı kaydettikten sonra değişikliklerin etkili olması için shell oturumunu yeniden açmanız gerekli. Bu dakikadan sonra açacağınız her yeni shell’de less uygulaması alakalı uzantılara denk geldiği takdirde içeriği renklendirerek gösterecektir.