¿Puede nano resaltar la sintaxis como gedit y vim? ¿Cómo puedo habilitarlo? Necesito al menos los aspectos más destacados de la sintaxis de bash y python.
¿Puede nano resaltar la sintaxis como gedit y vim? ¿Cómo puedo habilitarlo? Necesito al menos los aspectos más destacados de la sintaxis de bash y python.
Respuestas:
El editor nano proporciona resaltado de sintaxis para algunos idiomas y scripts por sí mismo. Revisa/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
Vincúlelos al archivo de configuración nano de su usuario presente en ~/.nanorc
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 haya vinculado (también puede vincular varios archivos)
Nota: a veces puede aparecer un segmentation fault
mensaje después de haber editado su ~/.nanorc
archivo. Si se produce un error de este tipo, ayuda a desarmar la variable de entorno LANG . Puede desactivarlo unset LANG
en la 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 todos los idiomas se resalten si su versión nano lo admite.
/etc/nanorc
: ¿se sobrescribe la configuración global ~/.nanorc
? ¿Cómo deshabilito .nanorc
?
~/.nanorc
archivo.
include
líneas no permite resaltar la sintaxis aunque no lo haya hecho .nanorc
?
ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorc
agréguelos a su archivo .nanorc o créelo si no existe.
include /usr/share/nano/*
no funciona
Sí, puede, sin embargo, las definiciones de sintaxis predeterminadas son bastante pobres e incompletas. Aquí mantengo un conjunto de definiciones más preciso , para cualquiera que las encuentre útiles.
Para instalar, ejecute:
git clone https://github.com/nanorc/nanorc.git
cd nanorc
make install
Agregue 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 colorear y tendrá que 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.
Usé 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 menciona que, para habilitar el resaltado de un idioma, agrega include
y la ruta a la definición de idioma que desea habilitar en su ~/.nanorc
archivo. Entonces, por ejemplo, para habilitar C / C ++, agregaría esta línea.
include /usr/share/nano/c.nanorc
El find
comando busca archivos o directorios dentro del directorio especificado.
-iname
bandera le dice que solo busque archivos con un nombre que termine en .nanorc
.-exec
banderas definen un comando para ejecutar en cada archivo encontrado.{}
se reemplaza con el nombre del archivo.\;
se usa para indicar el final del comando que se ejecutará en el find
comando.>> ~/.nanorc
hace que la salida se agregue a su ~/.nanorc
archivo.Esto debería incluir todos los complementos de resaltado de sintaxis incluidos por defecto, y cualquiera 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 las inclusiones.
Esto funciona si tiene 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.
Tengo algunos resaltados de sintaxis nano en mi github .
Hay capturas de pantalla de ejemplo en vivo para html y php:
y
Puede usar esto para incluir todo: (agregue esto al archivo ~ / nanorc)
include "/usr/share/nano/*.nanorc"
¡Feliz codificación!
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
Los hilighters más completa y la sintaxis de fechas para nano se mantienen aquí .
Para instalar todos los marcadores para su usuario, simplemente ejecute:
cd /tmp
git clone https://github.com/tech4david/nano-highlight.git
cd nano-highlight/
make install
echo "include ~/.nano/syntax/ALL.nanorc" >> ~/.nanorc
git clone
. El contenido de la /tmp
carpeta se eliminará en cada inicio del sistema y, por lo tanto, nunca podría ejecutar a git pull
.
js
no es bash
o shell-script
y he colocado el enlace detrás de la palabra here
. ¿Dónde está el problema?
make install
todos los archivos de sintaxis se copian en el lugar seguro donde pertenecen: ~/.nano/syntax
.
Para aquellos que tienen problemas después de seguir las instrucciones anteriores, verifique también si tiene definiciones duplicadas . Esto deshabilitará todo el resaltado de sintaxis para todos los archivos . Me encontré con esto después de agregar un nanorc.nanorc
archivo, y sin darme cuenta de que ~/.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)\>"
(...)
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 desde /usr/share/nano/nanorc.nanorc
mi carpeta local como ~/.nanorc
.
Accidentalmente deshabilité el resaltado usando el atajo de teclado Alt+ Y. Se puede volver a encender con el mismo método abreviado de teclado.
Sé que es un hilo viejo pero que mi solución pueda ayudar
edite el archivo en / etc / nanorc
Desde la línea 243 puede encontrar muchos archivos de inclusión. Simplemente descomente los que necesita, guarde y listo.
## Nanorc files
include "/usr/share/nano/nanorc.nanorc"
## C/C++
include "/usr/share/nano/c.nanorc"
## Makefiles
include "/usr/share/nano/makefile.nanorc"
## Cascading Style Sheets
include "/usr/share/nano/css.nanorc"
## Debian files
include "/usr/share/nano/debian.nanorc"
## Gentoo files
# include "/usr/share/nano/gentoo.nanorc"
No estoy seguro de que si actualiza nano, estos cambios desaparezcan.
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: solo 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