GNU/Linux >> Znalost Linux >  >> Linux

Existují nějaké možnosti, jak nechat kočku vystupovat s barvou?

Zdá se, že GNU balíček, source-highlight, dělá svůj trik (ačkoli nepoužívá cat -- jak John T zdůrazňuje, u cat to není možné). Je k dispozici prostřednictvím apt-get na Ubuntu a vyžaduje knihovnu Boost regex. Zkontrolujte svého správce balíčků, zda jsou k dispozici oba, jinak je můžete získat z webu. Myslím, že stránka GNU, na kterou se odkazuje dříve, má odkaz na Boost.

Po instalaci jsem v cestě vytvořil nový skript s názvem ccat . Skript vypadá takto:

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

Nic přepychového, jen zjednodušování méně skript, který obsahují s zvýrazněním zdroje. Při volání tímto způsobem se chová jako kočka.

Zahrnutý méně skript je však také pěkný skript. Právě jsem přidal následující do .bashrc :

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

Tento skript je také součástí online manuálu pro zvýraznění zdroje.

Myslím, že byste mohli alias cat zavolat src-hilite-lesspipe.sh $1, pokud byste měli chuť kočku úplně ignorovat, ale to nemusí být žádoucí.


Pro výstup syntaxe zvýrazněný kód s něčím jako cat , vytvořil jsem ccat příkazem podle pokynů na 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

Pro výstup syntaxe zvýrazněného kódu s něčím jako less , používám vim jako menší náhradu.

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

Abych to vyřešil, použil jsem highlight. Vytvořil jsem funkci, která se pokouší vytisknout soubor se zvýrazněním syntaxe, a pokud selže, vrátí se k tisku souboru jednoduše pomocí cat. Téma zvýraznění syntaxe můžete změnit na cokoliv chcete.

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
}

Pokud používáte Mac a používáte Homebrew (důrazně doporučujeme!), můžete nainstalovat highlight spuštěním brew install highlight . Jinak by měl být dostupný na většině ostatních správců balíčků a lze jej stáhnout zde.

Také jsem vytvořil funkci pro tisk souboru se zvýrazněním syntaxe jako html a jeho otevření v prohlížeči pro tisk (spoléhá se na open příkaz v 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
}

Užijte si to!


Linux
  1. Existují nějaké způsoby, jak získat přístup k souborům založeným na Icloud pomocí Ubuntu?

  2. Jak se popasovat s barevným výstupem

  3. Existují v Linuxu nějaké standardní kódy ukončení?

  1. Existuje nějaký způsob, jak zkontrolovat, které přenosové rychlosti jsou podporovány na sériovém zařízení?

  2. Existují nějaké GUI pro Linux, které nepoužívá X11?

  3. Existují nějaké nástroje příkazového řádku, které dokážou zachytit stisknutí tlačítka joysticku?

  1. Existují nějaké vedlejší účinky, když dvě distribuce sdílejí swapovací oddíl?

  2. Linux – Existují nějaké nástroje Gui pro Linux, které nepoužívají X11?

  3. Jak grep ps výstup s hlavičkami