Nano peut-il mettre en évidence la syntaxe comme gedit et vim? Comment puis-je l'activer? J'ai besoin au moins de la syntaxe bash et python.
L'éditeur nano fournit la mise en évidence de la syntaxe pour quelques langues et scripts. Découvrez /usr/share/nano/
[email protected]:~$ 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
Liez-les au fichier de configuration nano de votre utilisateur présent sur ~/.nanorc
avec quelque chose de similaire à cette ligne:
[email protected]:~$ cat ~/.nanorc
include /usr/share/nano/sh.nanorc
Maintenant, la coloration syntaxique est activée dans nano pour tout fichier que vous avez lié (vous pouvez également lier plusieurs fichiers)
Remarque: vous pouvez parfois obtenir un segmentation fault
après avoir modifié votre fichier ~/.nanorc
. Si une telle erreur se produit, la suppression de la variable d'environnement LANG est utile. Vous pouvez le désactiver avec unset LANG
dans le terminal. (Solution obtenue à partir de ici )
Il existe également d’autres solutions si vous n’êtes pas satisfait de votre mise en évidence. Un exemple de ce type peut être trouvé syntax-highlighting-in-nano "> ici
Vous pouvez également écrire include /usr/share/nano/*
dans le fichier ~ / .nanorc pour que toutes les langues soient mises en surbrillance si votre version nano le supporte.
Oui, vous pouvez, cependant les définitions de syntaxe par défaut sont assez médiocres et incomplètes. Je maintiens un ensemble plus précis de définitions ici , pour quiconque les trouve utiles.
Pour installer, lancez:
git clone https://github.com/nanorc/nanorc.git
cd nanorc
make install
Ajoutez ces lignes au ~ / .nanorc
include ~/.nano/syntax/html.nanorc
include ~/.nano/syntax/css.nanorc
include ~/.nano/syntax/php.nanorc
include ~/.nano/syntax/ALL.nanorc
Spécifiez ceux pour lesquels vous souhaitez colorer, et vous devrez ajuster ces couleurs selon vos préférences. Le ALL.nanorc
décrit des fonctionnalités pour tous les fichiers non encore classés. Ce sont les outils dont vous avez besoin pour démarrer, pas le produit fini.
J'ai utilisé cette commande pour activer rapidement toutes les langues disponibles.
find /usr/share/nano/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc
Comme mentionné dans d’autres réponses, /usr/share/nano/
contient les définitions des différentes langues.
$ 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
Également mentionné, pour activer la mise en surbrillance d'une langue, vous ajoutez include
et le chemin d'accès à la définition de langue que vous souhaitez activer dans votre fichier ~/.nanorc
. Par exemple, pour activer C / C ++, vous devez ajouter cette ligne.
include /usr/share/nano/c.nanorc
La commande find
recherche les fichiers ou répertoires dans le répertoire spécifié.
-iname
lui indique de ne rechercher que les fichiers dont le nom se termine par .nanorc
. -exec
flags définit une commande à exécuter sur chaque fichier trouvé. {}
est remplacé par le nom du fichier. \;
est utilisé pour indiquer la fin de la commande à exécuter sur la commande find
. >> ~/.nanorc
entraîne l'ajout de la sortie à votre fichier ~/.nanorc
. Cela devrait inclure tous les plugins de mise en évidence de la syntaxe inclus par défaut, et tout ce que vous ajoutez à / usr / share / nano:
find /usr/share/nano -name '*.nanorc' -printf "include %p\n" > ~/.nanorc
Ou éditez / etc / nanorc et voyez si vous pouvez décomment les include.
Cela fonctionne si vous avez une version de nano qui refuse d’accepter les caractères génériques dans le fichier .nanorc.
Lancez simplement cette ligne chaque fois que vous ajoutez une nouvelle configuration de couleur .nanorc.
J'ai un surlignement de la syntaxe nano sur mon github .
Il y a des exemples de captures d'écran en direct pour html et php:
et
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
Les développeurs de syntaxe les plus complets et les plus récents pour nano sont maintenus ici .
Pour installer tous les surligneurs pour votre utilisateur, exécutez simplement:
cd /tmp
git clone https://github.com/tech4david/nano-highlight.git
cd nano-highlight/
make install
echo "include ~/.nano/syntax/ALL.nanorc" >> ~/.nanorc
Vous pouvez utiliser ceci pour inclure tout: (ajoutez ceci au fichier ~ / nanorc)
include "/usr/share/nano/*.nanorc"
Heureux codage!
J'ai trouvé la mise en évidence de la syntaxe pour ici . / p>
Je l'ai ajouté dans mon fichier utilisateur à ~/.nanorc
Cependant, pour obtenir un fichier que je pourrais ajouter, je devais d'abord copier de /usr/share/nano/nanorc.nanorc
dans mon dossier local sous la forme ~/.nanorc
.
Si vous rencontrez des problèmes après avoir suivi les instructions ci-dessus, vérifiez également si vous avez des définitions de doublons . Cela désactivera toute la coloration syntaxique pour tous les fichiers . Je suis tombé sur cela après avoir ajouté un fichier nanorc.nanorc
, et je ne me suis pas rendu compte que mon ~/.nanorc
avait déjà une section identique, à savoir:
## 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)\>"
(...)
Je viens de faire ce script pour ajouter les couleurs à nano: Mais bien sûr, vous devez avoir les codes de couleur dans / usr / share / nano pour que cela fonctionne. S'il y a des erreurs: modifiez manuellement le fichier ~ / .nanorc et supprimez les lignes donnant les erreurs.
#!/bin/bash
for i in 'ls /usr/share/nano'
do
echo "include /usr/share/nano/$i" >> ~/.nanorc
done
Lire d'autres questions sur les étiquettes nano syntax-highlighting