¿Cómo habilito el resaltado de sintaxis en nano?

149

¿Puede nano hacer resaltado de sintaxis como gedit y vim? ¿Cómo puedo habilitarlo? Necesito al menos reflejos de sintaxis de bash y python.

    
pregunta Oxwivi 23.12.2011 - 16:20

11 respuestas

148

El editor nano proporciona resaltado de sintaxis para algunos idiomas y scripts por sí mismo. Echa un vistazo a /usr/share/nano/

nits@nits-excalibur:~$ ls /usr/share/nano/
asm.nanorc     fortran.nanorc   man.nanorc     ocaml.nanorc   ruby.nanorc
awk.nanorc     gentoo.nanorc    mgp.nanorc     patch.nanorc   sh.nanorc
c.nanorc       groff.nanorc     mutt.nanorc    perl.nanorc    tcl.nanorc
cmake.nanorc   html.nanorc      nano-menu.xpm  php.nanorc     tex.nanorc
css.nanorc     java.nanorc      nanorc.nanorc  pov.nanorc     xml.nanorc
debian.nanorc  makefile.nanorc  objc.nanorc    python.nanorc

Enlácelos al archivo de configuración nano de su usuario presente en ~/.nanorc con algo similar a esta línea:

nits@nits-excalibur:~$ cat ~/.nanorc
include /usr/share/nano/sh.nanorc

Ahora, el resaltado de sintaxis está habilitado en nano para cualquier archivo que vincule (también podría vincular varios archivos)

Nota: a veces puede obtener un segmentation fault después de haber editado su archivo ~/.nanorc . Si se produce un error de este tipo, la desactivación de la variable de entorno LANG ayuda. Puede desarmarlo con unset LANG en el terminal. (Solución obtenida de aquí )

También hay otras soluciones si no está satisfecho con su resaltado bash. Un ejemplo de esto se puede encontrar aquí

También puede escribir include /usr/share/nano/* en el archivo ~ / .nanorc para permitir que se destaquen todos los idiomas si su versión nano lo admite.

    
respondido por el Nitin Venkatesh 23.12.2011 - 17:07
72

Sí, puede, sin embargo, las definiciones de sintaxis predeterminadas son bastante pobres e incompletas. Estoy manteniendo un conjunto más preciso de definiciones aquí , para cualquiera que las encuentre útiles.

Para instalar, ejecuta:

git clone https://github.com/nanorc/nanorc.git
cd nanorc
make install

Agregue estas líneas al ~ / .nanorc

include ~/.nano/syntax/html.nanorc
include ~/.nano/syntax/css.nanorc
include ~/.nano/syntax/php.nanorc
include ~/.nano/syntax/ALL.nanorc

Especifique las que desea colorear, y deberá ajustar estos colores a sus preferencias. El ALL.nanorc describe características para todos los archivos aún no clasificados. Estas son las herramientas que necesita para comenzar, no el producto final pulido.

    
respondido por el Craig Barnes 27.08.2012 - 18:17
37

Utilicé este comando para habilitar rápidamente todos los idiomas disponibles.

find /usr/share/nano/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc

Como se menciona en otras respuestas, /usr/share/nano/ contiene las definiciones para diferentes idiomas.

$ ls /usr/share/nano
asm.nanorc     fortran.nanorc   man-html       ocaml.nanorc   ruby.nanorc
awk.nanorc     gentoo.nanorc    man.nanorc     patch.nanorc   sh.nanorc
cmake.nanorc   groff.nanorc     mgp.nanorc     perl.nanorc    tcl.nanorc
c.nanorc       html.nanorc      mutt.nanorc    php.nanorc     tex.nanorc
css.nanorc     java.nanorc      nanorc.nanorc  pov.nanorc     xml.nanorc
debian.nanorc  makefile.nanorc  objc.nanorc    python.nanorc

También se mencionó, para habilitar el resaltado para un idioma, agregar include y la ruta a la definición de idioma que desea habilitar en su archivo ~/.nanorc . Entonces, por ejemplo, para habilitar C / C ++, debería agregar esta línea.

include /usr/share/nano/c.nanorc

El comando find busca archivos o directorios dentro del directorio especificado.

  • El indicador -iname le dice que solo busque archivos con un nombre que finalice con .nanorc .
  • El -exec flags define un comando para ejecutar en cada archivo encontrado.
  • El {} se reemplaza con el nombre del archivo.
  • \; se usa para indicar el final del comando para ejecutar en el comando find .
  • Por último, >> ~/.nanorc hace que la salida se anexe a su archivo ~/.nanorc .
respondido por el Drew Chapin 18.10.2014 - 20:22
6

Esto debería incluir todos los complementos de resaltado de sintaxis incluidos por defecto, y los que agregue a / usr / share / nano:

find /usr/share/nano -name '*.nanorc' -printf "include %p\n" > ~/.nanorc

O bien, edite / etc / nanorc y vea si puede descomentar los includes.

Esto funciona si tienes una versión de nano que se niega a aceptar comodines en el archivo .nanorc.

Simplemente ejecute esta línea cada vez que agregue una configuración de color .nanorc adicional.

    
respondido por el NotoriousPyro 28.12.2016 - 15:23
2

Tengo algunos resaltados de nano sintaxis en my github .

Hay capturas de pantalla de ejemplo en vivo para html y php:

y

    
respondido por el Eric Leschinski 03.05.2015 - 08:57
1
wget -r -nH --cut-dirs=3 --no-parent --reject="index.html*" https://nanosyntax.googlecode.com/svn/trunk/syntax-nanorc/ -P ~/.nano-syntax
for i in 'ls --color=never -1 ~/.nano-syntax/*.nanorc' ; do echo "include $i" >> ~/.nanorc ; done
    
respondido por el user170859 28.06.2013 - 05:08
1

Los hilighters de sintaxis más completos y actualizados para nano se mantienen aquí .

Para instalar todos los resaltadores que su usuario acaba de ejecutar:

cd /tmp
git clone https://github.com/tech4david/nano-highlight.git
cd nano-highlight/
make install
echo "include ~/.nano/syntax/ALL.nanorc" >> ~/.nanorc
    
respondido por el Raveren 29.07.2015 - 12:21
1

Puede usar esto para incluir todos: (agregar esto al archivo ~ / nanorc)

include "/usr/share/nano/*.nanorc"

Feliz codificación!

    
respondido por el Norbert Mezei 12.02.2016 - 05:00
0

Encontré resaltado de sintaxis para js aquí .

Lo agregué a mi archivo de usuario en ~/.nanorc

Sin embargo, para obtener un archivo en el que pudiera agregar, primero tuve que copiar de /usr/share/nano/nanorc.nanorc a mi carpeta local primero como ~/.nanorc .

    
respondido por el Forrest Erickson 06.07.2015 - 01:21
0

Para aquellos que están teniendo problemas después de seguir las instrucciones anteriores, también verifique si tiene definiciones duplicadas . Estos deshabilitarán todos los resaltados de sintaxis para todos los archivos . Me encontré con esto después de agregar un archivo nanorc.nanorc y sin darme cuenta de que mi ~/.nanorc ya tenía una sección idéntica, es decir:

## Here is an example for nanorc files.
##
syntax "nanorc" "\.?nanorc$"
## Possible errors and parameters
icolor brightwhite "^[[:space:]]*((un)?set|include|syntax|i?color).*$"
## Keywords
icolor brightgreen "^[[:space:]]*(set|unset)[[:space:]]+(autoindent|backup|$
icolor green "^[[:space:]]*(set|unset|include|syntax)\>"
(...)
    
respondido por el dmvianna 19.02.2016 - 05:50
-1

Acabo de hacer este script para agregar los colores a nano: Pero, por supuesto, debes tener los códigos de color en / usr / share / nano para que esto funcione. Si hay errores: simplemente edite manualmente el archivo ~ / .nanorc y elimine las líneas que dan los errores.

#!/bin/bash

for i in 'ls /usr/share/nano'
  do
    echo "include /usr/share/nano/$i" >> ~/.nanorc
  done
    
respondido por el some_random_guy 04.02.2016 - 11:35

Lea otras preguntas en las etiquetas