Kedi çıktısının renkli olmasına izin veren herhangi bir seçenek var mı?


18

Sözdizimi vurgulayan bir C kaynak kod dosyası çıkarmak istersem, kullanabilir miyim cat?

Yanıtlar:


18

Bir GNU paketi kaynak vurgulamak hile yapıyor gibi görünüyor (ancak kedi kullanmıyor - John T'nin işaret ettiği gibi, bu özellikle kediyle mümkün değil). Ubuntu'da apt-get yoluyla kullanılabilir ve Boost regex kütüphanesini gerektirir. Her ikisinin de uygun olup olmadığını görmek için paket yöneticinize başvurun, aksi takdirde webden alabilirsiniz. Daha önce bağlanan GNU sayfasının Boost ile bağlantısı olduğunu düşünüyorum.

Yüklemeden sonra yoluma yeni bir komut dosyası oluşturdum. CCAT . Komut dosyası şuna benziyor:

#!/bin/bash
src-hilite-lesspipe.sh $1

Hiçbir şey fantezi, sadece basitleştirmek az kaynak vurgu ile içerdikleri komut dosyası. Bu şekilde çağrıldığında sadece kedi gibi davranır.

Dahil az komut dosyası, yine de kullanmak için güzel bir komut dosyasıdır. Sadece şunu ekledim: Bashrc :

export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '

Bu senaryo kaynak vurgusu için çevrimiçi kılavuzda da bulunmaktadır.

Sanırım kediyi tamamen görmezden gelmek istersen, diğer adı kediyi src-hilite-lesspipe.sh $ 1 olarak adlandırabilirsin, ama bu arzu edilmeyebilir.


4
Şahsen ben biten tek satır bash betiğine bir takma ad tercih ederim. $1 :).
mgalgs

Evet, mitch_feaster, sen yerdesin. :]
rgm

2
Mac ile de çalışır brew install source-highlight . Yaml renklendirilemedi :(
Sairam

9

Sözdizimi vurgulanmış kod gibi bir şey çıktısı almak cat, Ben oluşturdum ccat talimatlarını izleyerek komut verin http://scott.sherrillmix.com/blog/programmer/syntax-highlighting-in-terminal/ .

#!/bin/bash
if [ ! -t 0 ];then
  file=/dev/stdin
elif [ -f $1 ];then
  file=$1
else
  echo "Usage: $0 code.c"
  echo "or e.g. head code.c|$0"
  exit 1
fi
pygmentize -f terminal -g $file

Sözdizimi gibi bir kod vurgulu kod çıktısı almak için less, Vim'i daha az yedek olarak kullanıyorum.

alias less='/usr/share/vim/vim72/macros/less.sh'

Pygmentize nasıl kurulur: easy_install --install-dir $ SOMEDIR Pygments
psihodelia

Bu tür taşınabilir çözümleri seviyorum. Bu betiği bash'ma fonksiyon olarak ekledim. .functions gibi colorize(){...}
guneysus

3

Bunu çözmek için kullandım vurgulamak . Dosyayı sözdizimi vurgulamasıyla yazdırmaya çalışan bir işlev yaptım ve başarısız olursa, dosyayı yazdırmak için yalnızca cat kullanarak geri çekilir. Sözdizimi vurgulama temasını, istediğiniz şekilde değiştirebilirsiniz.

function hl { # Overrides the cat command to use syntax highlighting
    # Highlight with 'moria' theme to terminal, and suppress errors
    highlight $1 -s moria -O xterm256 2> /dev/null

    if (($? != 0)); then # If the command had errors
        cat $1 # Just cat the file out instead
    fi
}

Mac kullanıyorsanız ve Homebrew kullanıyorsanız (şiddetle tavsiye edilir!) brew install highlight. Aksi takdirde, diğer paket yöneticilerinin çoğunda bulunmalı ve indirilebilir. İşte .

Ayrıca, sözdizimi html ile vurgulayan bir dosyayı yazdırmak ve tarayıcıda yazdırmak için açmak için bir işlev yaptım open OS X'de komut):

function hlprint {
    # Print with line numbers and 'moria' theme
    highlight $1 -l -o print.html -s moria
    open print.html # Open in browser
    sleep 5 # Give the browser time to open
    rm print.html highlight.css # Remove output files
}

Keyfini çıkarın!


1

Hayır, kedinin sözdizimi vurgulama yeteneği yoktur. Kaynak kodunu sözdizimi vurgulamasıyla görüntülemek isterseniz, vim veya tercih editörünüze (sözdizimi vurgulaması olan) yerleştirin. Bu şekilde, uzun bir dosya kullanıyorsanız çıktıdan sayfa bile alabilirsiniz. Ctrl + F (ileri) ve Ctrl + B (geriye doğru).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.