Resaltado de sintaxis/coloreado de gato

Resuelto Lelouch Lamperouge asked hace 13 años • 20 respuestas

¿ Existe algún método para colorear la salida de cat?grep

Para grep, en la mayoría de las consolas muestra una salida en color que resalta las palabras clave buscadas. De lo contrario, puede forzarlo llamando ¿ grep --color Existe una forma genérica de colorear la salida de cualquier programa según su elección personal?

Por lo que tengo entendido, el programa en sí no es responsable de los colores. Es la concha.

Estoy usando el shell predeterminado en FreeBSD 5.2.1 que parece que nunca ha visto colores desde esa época.

Lelouch Lamperouge avatar Oct 21 '11 21:10 Lelouch Lamperouge
Aceptado

Lo recomendaría pygmentizedel paquete Python python-pygments. Es posible que desee definir el siguiente alias útil (a menos que lo utilice ccatdesde el paquete ccrypt).

alias ccat='pygmentize -g'

Salida de gato resaltada sintaxis usando pygmentize

Y si quieres números de línea:

alias ccat='pygmentize -g -O style=colorful,linenos=1'

Agregue uno de estos comandos anteriores para ~/.bash_aliaseslograr un efecto permanente

buergi avatar Feb 10 '2013 16:02 buergi

Opciones:

pigmentar es bueno. Tengo un alias:

alias c='pygmentize -g'

pero lo más destacado es que otra alternativa ampliamente disponible es

alias cats='highlight -O ansi --force'

Instalación:

Es posible que tengas que instalar pygmentsusando uno de estos:

sudo apt install python-pygments
sudo pip install pygments
sudo easy_install Pygments #for Mac user

y para highlightel paquete que está fácilmente disponible en todas las distribuciones

sudo apt install highlight
sudo yum install highlight
  • Repositorio de Bitbucket: https://bitbucket.org/birkenfeld/pygments-main
  • Espejo de GitHub: https://github.com/sglyon/pygments

En acción:

Adjunto fotos de ambos a continuación para una buena comparación en los aspectos más destacados.

Aquí está pygmentizeen acción: Pygmentizar resaltado en un archivo Python

y esto es highlight: Resaltar resaltado en archivo Python

Shubham Chaudhary avatar Dec 16 '2014 09:12 Shubham Chaudhary

Desde finales de abril de 2018 en adelante:

Bat : un clon de cat(1) con resaltado de sintaxis e integración con Git.

El proyecto es un clon de gato con soporte para colores y personalizaciones escritas en Rust. Ofrece no sólo resaltado de sintaxis con múltiples temas, sino también integración con Git. Como se describe en la documentación:

bat intenta lograr los siguientes objetivos :

  • Proporciona resaltado de sintaxis atractivo y avanzado
  • Integre con Git para mostrar modificaciones de archivos
  • Sea un reemplazo directo para el gato (POSIX)
  • Ofrezca una interfaz de línea de comandos fácil de usar

No hace falta decir que es mucho más rápido que pigmentar y no se ahoga cuando se enfrenta a archivos grandes.

El código fuente y las versiones binarias + instrucciones de instalación se pueden encontrar en el repositorio de Github, así como una comparación con programas alternativos .

Daniel avatar May 07 '2018 19:05 Daniel

Hay versiones coloreadas de cat(sus nombres son difíciles de buscar en Google, a menos que agregues pagery githubo cat replacement).

  • bat [óxido] https://github.com/sharkdp/bat (mantenido activamente)
  • ccat [golang] https://github.com/jingweno/ccat/

Ambos baty ccatson binarios nativos y son casi tan rápidos como, /bin/cata diferencia de las soluciones basadas en Python, como pygmentize .

instalandobat

  • Mac OS:brew install bat
  • Linux:apt install bat
  • Ventanas:choco install bat
  • Binarios: https://github.com/sharkdp/bat/releases
  • Construir desde la fuente: cargo install --locked bat(requiere cargolas herramientas de construcción de óxido)

consulte los pasos para obtener más sistemas operativos en https://github.com/sharkdp/bat#installation

Instalaciónccat

  • obtenga los binarios para Linux/Windows/macOS y copie ccat , por ejemplo, en /usr/local/bin.
  • Mac:brew install ccat

Si no hay un binario para su plataforma (por ejemplo, raspberry pi, etc.), puede instalarlo desde la fuente (requiere el entorno golang ):

go get -u github.com/jingweno/ccat

# NOTE: as of Go 1.18 instead of 'go get xyz' use 'go install xyz', e.g.
go install github.com/jingweno/ccat@latest

Alias ​​concat

La configuración de ootb batmuestra números de línea y realiza paginación que no necesitaba, así que le puse un alias para desactivar la función que no quería:

Agregue su ~/.bashrc( ~/.zshrc, etc.):

alias cat="bat --paging=never -pp --style='plain' --theme=TwoDark $*"

Para ccat:

alias cat="ccat $*"

En los casos en que necesite el ottb simple, cataún puede invocar la versión sin alias anteponiendo una barra invertida, por ejemplo

\cat /etc/hosts

o usando la ruta absoluta:

/bin/cat /etc/hosts
ccpizza avatar May 06 '2015 10:05 ccpizza