GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Gibt es Optionen, um cat mit Farbe ausgeben zu lassen?

Ein GNU-Paket, source-highlight, scheint den Zweck zu erfüllen (obwohl cat nicht verwendet wird - wie John T betont, ist dies speziell mit cat nicht möglich). Es ist über apt-get unter Ubuntu verfügbar und erfordert die Boost-Regex-Bibliothek. Überprüfen Sie Ihren Paketmanager, um zu sehen, ob beide verfügbar sind, andernfalls können Sie sie aus dem Internet herunterladen. Die zuvor verlinkte GNU-Seite hat einen Link zu Boost, glaube ich.

Nach der Installation habe ich in meinem Pfad ein neues Skript mit dem Namen ccat erstellt . Das Skript sieht folgendermaßen aus:

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

Nichts Besonderes, nur das Weniger vereinfachen Skript, das sie mit source-highlight enthalten. Es verhält sich wie eine Katze, wenn es auf diese Weise gerufen wird.

Das enthaltene Less-Skript ist jedoch auch ein nettes Skript. Ich habe gerade Folgendes zu .bashrc hinzugefügt :

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

Dieses Skript ist auch im Online-Handbuch zum Quellenhervorheben enthalten.

Ich schätze, Sie könnten cat aliasieren, um src-hilite-lesspipe.sh $1 zu nennen, wenn Sie cat ganz ignorieren möchten, aber das ist vielleicht nicht wünschenswert.


Um Code mit Syntaxhervorhebung mit etwas wie cat auszugeben , habe ich eine ccat erstellt Befehl, indem Sie den Anweisungen unter http://scott.sherrillmix.com/blog/programmer/syntax-highlighting-in-terminal/.

folgen
#!/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

Um Code mit Syntaxhervorhebung mit etwas wie less auszugeben , ich verwende vim als Less-Ersatz.

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

Um dies zu lösen, habe ich Highlight verwendet. Ich habe eine Funktion erstellt, die versucht, die Datei mit Syntaxhervorhebung zu drucken, und wenn dies fehlschlägt, wird einfach cat zum Drucken der Datei verwendet. Sie können das Thema für die Syntaxhervorhebung beliebig ändern.

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
}

Wenn Sie einen Mac verwenden und Homebrew verwenden (dringend empfohlen!), können Sie Highlight installieren, indem Sie brew install highlight ausführen . Andernfalls sollte es auf den meisten anderen Paketmanagern verfügbar sein und kann hier heruntergeladen werden.

Ich habe auch eine Funktion erstellt, um eine Datei mit Syntaxhervorhebung als html auszudrucken und im Browser zum Drucken zu öffnen (basiert auf dem open Befehl unter OS X):

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
}

Viel Spaß!


Linux
  1. Gibt es Nebenwirkungen, wenn zwei Distributionen eine Swap-Partition gemeinsam nutzen?

  2. Gibt es CLI-Tools zum Zeichnen von Grafiken auf dem Bildschirm während einer X-Sitzung?

  3. Wie man mit der Farbausgabe umgeht

  4. Gibt es Befehlszeilenprogramme, die das Drücken von Joystick-Tasten erfassen können?

  5. So grep ps-Ausgabe mit Headern

Ccat – Cat-Befehlsausgabe einfärben

Cat-Dateien mit Verzeichnis?

Linux – Gibt es GUIs für Linux, die kein X11 verwenden?

Gibt es bekannte und häufig verwendete Shell-Scripting-Ides für Un*x?

Gibt es eine Open-Source-Alternative zu Landscape?

Gibt es Dateisysteme, für die `ln -d` erfolgreich ist?