¿Cómo puedo activar el resaltado de sintaxis en nano?

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

Solución

El editor nano proporciona por sí mismo el resaltado de sintaxis para algunos lenguajes y scripts. Comprueba /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ázalos a tu archivo de configuración de nano 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 hayas enlazado (también puedes enlazar varios archivos)

Nota: A veces puedes obtener un fallo de segmentación después de haber editado tu archivo ~/.nanorc. Si se produce un error de este tipo, la desactivación de la variable de entorno LANG ayuda. Puedes desactivarla con unset LANG en la terminal. (Solución obtenida de aquí)

También hay otras soluciones si no estás satisfecho con tu resaltado en bash. Un ejemplo de ello se puede encontrar aquí

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

Comentarios (16)

Sí se puede, pero las definiciones sintácticas por defecto son bastante pobres e incompletas. Mantengo un conjunto de definiciones más precisas aquí, para quien las encuentre útiles.

Para instalar, ejecute:

git clone github.com/scopatz/nanorc.git
cd nanorc
make install

Añade estas líneas a ~/.nanorc

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

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

Comentarios (10)
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
Comentarios (1)