Comment activer la coloration syntaxique dans nano?

147

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.

    
posée Oxwivi 23.12.2011 - 16:20
la source

11 réponses

146

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.

    
réponse donnée Nitin Venkatesh 23.12.2011 - 17:07
la source
71

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.

    
réponse donnée Craig Barnes 27.08.2012 - 18:17
la source
37

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é.

  • L'indicateur -iname lui indique de ne rechercher que les fichiers dont le nom se termine par .nanorc .
  • Le -exec flags définit une commande à exécuter sur chaque fichier trouvé.
  • Le {} est remplacé par le nom du fichier.
  • \; est utilisé pour indiquer la fin de la commande à exécuter sur la commande find .
  • Enfin, >> ~/.nanorc entraîne l'ajout de la sortie à votre fichier ~/.nanorc .
réponse donnée Drew Chapin 18.10.2014 - 20:22
la source
6

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.

    
réponse donnée NotoriousPyro 28.12.2016 - 15:23
la source
2

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

    
réponse donnée Eric Leschinski 03.05.2015 - 08:57
la source
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
    
réponse donnée user170859 28.06.2013 - 05:08
la source
1

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
    
réponse donnée Raveren 29.07.2015 - 12:21
la source
1

Vous pouvez utiliser ceci pour inclure tout: (ajoutez ceci au fichier ~ / nanorc)

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

Heureux codage!

    
réponse donnée Norbert Mezei 12.02.2016 - 05:00
la source
0

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 .

    
réponse donnée Forrest Erickson 06.07.2015 - 01:21
la source
0

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)\>"
(...)
    
réponse donnée dmvianna 19.02.2016 - 05:50
la source
-1

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
    
réponse donnée some_random_guy 04.02.2016 - 11:35
la source

Lire d'autres questions sur les étiquettes