web-dev-qa-db-fra.com

Comment activer la coloration syntaxique dans nano?

Nano peut-il mettre en évidence la syntaxe comme gedit et vim? Comment puis-je l'activer? J'ai besoin d'au moins bash et de la syntaxe python.

174
Oxwivi

L'éditeur nano fournit la coloration syntaxique pour quelques langues et scripts. Découvrez /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 à ~/.nanorc avec quelque chose de similaire à cette ligne:

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

La mise en évidence de la syntaxe est maintenant activée dans nano pour le fichier que vous avez lié (vous pouvez également lier plusieurs fichiers).

screenshot of syntax highlighting

Remarque: vous pouvez parfois obtenir un segmentation fault après avoir modifié votre fichier ~/.nanorc. Si une telle erreur se produit, il est utile de désactiver la variable d’environnement LANG. Vous pouvez le désélectionner avec unset LANG dans le terminal. (Solution obtenue de ici )

Il existe également d'autres solutions si vous n'êtes pas satisfait de votre mise en évidence bash. On peut en trouver un exemple ici

Vous pouvez également écrire include /usr/share/nano/* dans le fichier ~/.nanorc pour permettre à toutes les langues d'être mises en surbrillance si votre version nano le prend en charge.

167
Nitin Venkatesh

Oui, vous pouvez, mais les définitions de syntaxe par défaut sont assez pauvres et incomplètes. Je maintiens un ensemble de définitions plus précis ici , pour tous ceux qui les trouvent 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 coloriser et vous devrez ajuster ces couleurs à vos préférences. Le ALL.nanorc décrit les fonctionnalités de tous les fichiers non classés. Ce sont les outils dont vous avez besoin pour commencer, pas le produit fini.

72
Craig Barnes

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 pour 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

Aussi mentionné, pour activer la mise en surbrillance d'une langue, vous ajoutez includeet le chemin d'accès à la définition de langue que vous souhaitez activer dans votre fichier ~/.nanorc. Ainsi, par exemple, pour activer C/C++, vous ajouteriez cette ligne.

include /usr/share/nano/c.nanorc

La commande findrecherche des fichiers ou des 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.
  • Les indicateurs -exec définissent une commande à exécuter sur chaque fichier trouvé.
  • Le {} est remplacé par le nom du fichier.
  • \; indique la fin de la commande à exécuter sur la commande findname__.
  • Enfin, >> ~/.nanorc provoque l'ajout de la sortie à votre fichier ~/.nanorc.
48
Drew Chapin

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 bien, éditez/etc/nanorc et voyez si vous pouvez supprimer le commentaire.

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 de lancer cette ligne chaque fois que vous ajoutez une configuration de couleur supplémentaire .nanorc.

7
NotoriousPyro

J'ai quelques syntaxes nano mises en évidence à mon github .

Il y a des captures d'écran d'exemple en direct pour html et php:

enter image description here

et

enter image description here

2
Eric Leschinski

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

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

Bonne codage!

2
Norbert Mezei

Les syntaxes de syntaxe les plus complètes et les plus à jour pour nano sont maintenues here .

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
1
Raveren
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
1
user170859

Si vous rencontrez des problèmes après avoir suivi les instructions ci-dessus, vérifiez également si vous avez définitions en double. Ceux-ci désactiveront toute la coloration syntaxique pour tous les fichiers . Je me suis heurté à cela après avoir ajouté un fichier nanorc.nanorc, sans me rendre compte que mon ~/.nanorc avait déjà une section identique, c'est-à-dire:

## 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)\>"
(...)
1
dmvianna

J'ai trouvé la syntaxe en surbrillance pour js ici .

Je l'ai ajouté à mon fichier utilisateur à ~/.nanorc

Cependant, pour obtenir un fichier que je pouvais annexer, je devais d'abord copier de /usr/share/nano/nanorc.nanorc dans mon dossier local d'abord sous le nom ~/.nanorc.

0
Forrest Erickson

J'ai désactivé accidentellement la surbrillance à l'aide du raccourci clavier Alt+Y. Il peut être réactivé avec le même raccourci clavier.

0
Thomas Weller

Je sais que c'est un vieux fil, mais que ma solution puisse aider

éditez le fichier dans/etc/nanorc

À partir de la ligne 243, vous pouvez trouver beaucoup de fichiers à inclure. Décommentez simplement ceux dont vous avez besoin, sauvegardez et faites.

## 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"

Je ne sais pas si vous mettez à jour Nano si ces modifications ont disparu.