222 votes

Comment activer la coloration syntaxique dans nano ?

Nano peut-il faire de la coloration syntaxique comme gedit et vim ? Comment puis-je l'activer ? J'ai besoin au moins de la coloration syntaxique de bash et de Python.

214voto

Adam Millerchip Points 101

L'éditeur nano fournit une coloration syntaxique pour quelques langues et scripts par lui-même. Consultez /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

Liez-les au fichier de configuration nano de votre utilisateur (présent à l'adresse ~/.nanorc , ${XDG_CONFIG_HOME}/nano/nanorc , oder ~/.config/nano/nanorc le premier rencontré) avec quelque chose de similaire à cette ligne :

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

Maintenant, la coloration syntaxique est activée dans nano pour le fichier que vous avez lié (vous pouvez également lier plusieurs fichiers).

screenshot of syntax highlighting

Note : Parfois, vous pouvez obtenir un segmentation fault après avoir modifié votre ~/.nanorc fichier. Si une telle erreur se produit, il suffit de désactiver l'option LANG La variable d'environnement aide. Vous pouvez la désactiver avec unset LANG dans le terminal. (Solution obtenue à partir de aquí )

Il existe également d'autres solutions si vous n'êtes pas satisfait de votre mise en évidence de bash. Un exemple de ce type peut être trouvé aquí

Vous pouvez également écrire include /usr/share/nano/* au fichier ~/.nanorc pour permettre à toutes les langues d'être mises en évidence si votre version de nano le supporte.

94voto

Craig Barnes Points 957

Oui, vous pouvez le faire, mais les définitions syntaxiques par défaut sont assez pauvres et incomplètes. Je maintiens un ensemble de définitions plus précises aquí pour tous ceux qui les trouvent utiles.

Pour l'installer, exécutez :

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

Ajoutez ces lignes au fichier ~/.nanorc

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

Indiquez ceux pour lesquels vous souhaitez une coloration, et vous devrez adapter ces couleurs à vos préférences. Le site ALL.nanorc décrit les caractéristiques de tous les dossiers non encore classés. Ce sont les outils dont vous avez besoin pour commencer, et non le produit fini.

68voto

Drew Chapin Points 859

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

Il est également mentionné que pour activer la mise en évidence pour une langue, vous ajoutez include et le chemin d'accès à la définition de la langue que vous voulez activer dans votre système de gestion de l'information. ~/.nanorc fichier. Ainsi, par exemple, pour activer C/C++, il faut ajouter cette ligne.

include /usr/share/nano/c.nanorc

El find recherche des fichiers ou des répertoires dans le répertoire spécifié.

  • El -iname lui indique de ne rechercher que les fichiers dont le nom se termine par .nanorc .
  • El -exec flags définit une commande à exécuter sur chaque fichier trouvé.
  • El {} est remplacé par le nom du fichier.
  • \; est utilisé pour signifier la fin de la commande à exécuter au find commandement.
  • Enfin, >> ~/.nanorc fait en sorte que la sortie soit ajoutée à votre ~/.nanorc fichier.

8voto

NotoriousPyro Points 206

Cela devrait inclure tous les plugins de coloration syntaxique inclus par défaut, et tous ceux 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écommenter les includes.

Cela fonctionne si vous avez une version de nano qui refuse d'accepter les caractères génériques dans le fichier .nanorc.

Il suffit d'exécuter cette ligne chaque fois que vous ajoutez une configuration de couleur .nanorc supplémentaire.

4voto

Norbert Mezei Points 41

Vous pouvez l'utiliser pour inclure tout : (ajouter ceci à ~/.nanorc fichier)

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

Bon codage !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X