GNU/Linux >> Linux Esercitazione >  >> Linux

Esistono opzioni per consentire l'output del gatto con il colore?

Un pacchetto GNU, source-highlight, sembra fare il trucco (sebbene non stia usando cat - come sottolinea John T, questo non è possibile con cat in particolare). È disponibile tramite apt-get su Ubuntu e richiede la libreria regex Boost. Controlla il tuo gestore di pacchetti per vedere se entrambi sono disponibili, altrimenti puoi prenderli dal web. La pagina GNU collegata in precedenza ha un collegamento a Boost, credo.

Dopo l'installazione, ho creato un nuovo script nel mio percorso chiamato ccat . Lo script è simile a:

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

Niente di speciale, solo semplificando il meno script che includono con source-highlight. Si comporta proprio come un gatto quando viene chiamato in questo modo.

Tuttavia, anche lo script less incluso è uno script carino da usare. Ho appena aggiunto quanto segue a .bashrc :

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

Questo script è incluso anche nel manuale online per l'evidenziazione della fonte.

Immagino che potresti alias cat per chiamare src-hilite-lesspipe.sh $1 se hai voglia di ignorare del tutto cat, ma potrebbe non essere desiderabile.


Per visualizzare il codice evidenziato dalla sintassi con qualcosa come cat , ho creato un ccat comando seguendo le istruzioni su 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

Per visualizzare il codice evidenziato dalla sintassi con qualcosa come less , io uso vim come sostituto less.

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

Per risolvere questo problema, ho usato highlight. Ho creato una funzione che tenta di stampare il file con l'evidenziazione della sintassi e, in caso di errore, utilizza semplicemente cat per stampare il file. Puoi cambiare il tema dell'evidenziazione della sintassi come preferisci.

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
}

Se sei su un Mac e usi Homebrew (altamente consigliato!), puoi installare highlight eseguendo brew install highlight . Altrimenti, dovrebbe essere disponibile sulla maggior parte degli altri gestori di pacchetti e può essere scaricato qui.

Ho anche creato una funzione per stampare un file con l'evidenziazione della sintassi come html e aprirlo nel browser per stampare (si basa sul open comando su 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
}

Buon divertimento!


Linux
  1. Esistono strumenti Cli per disegnare grafica sullo schermo durante una sessione X?

  2. Come eseguire il grep con l'output a colori

  3. Esistono codici di stato di uscita standard in Linux?

  4. C'è un modo per mantenere il testo passato in testa, coda, meno, ecc. Da colorare?

  5. Esiste un modo per verificare quali baud rate sono supportati su un dispositivo seriale?

Ccat:colora l'output del comando Cat

Linux:esistono delle GUI per Linux che non utilizzano X11?

Esistono ide di script di shell ben noti e ben utilizzati per Un*x?

Esistono alternative open source al paesaggio?

Esistono modi per accedere ai file basati su Icloud con Ubuntu?

Tutte le nuove righe vengono rimosse quando si salva l'output cat in una variabile