Comment activer la coloration syntaxique dans nano?

184

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 faits saillants de syntaxe python.

Oxwivi
la source
1
Merci beaucoup pour les fichiers de syntaxe dans le dépôt Git, je l’utilise maintenant sur tous mes serveurs ... continuez comme ça!
1
@TheGene Commentez et remerciez la réponse. Le repo lui est crédité, pas moi, celui qui pose la question.
Oxwivi

Réponses:

175

L'éditeur nano fournit la coloration syntaxique pour quelques langues et scripts. Check-out/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

Associez-les au fichier de configuration nano de votre utilisateur, présent à ~/.nanorcquelque 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)

capture d'écran de la coloration syntaxique

Remarque: Vous pouvez parfois recevoir un message segmentation faultaprès avoir modifié votre ~/.nanorcfichier. Si une telle erreur se produit, il est utile de désactiver la variable d’environnement LANG . Vous pouvez le désactiver unset LANGdans le terminal. (Solution obtenue d' ici )

Il existe également d'autres solutions si vous n'êtes pas satisfait de votre mise en évidence bash. Vous en trouverez 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.

Nitin Venkatesh
la source
1
Ces lignes ne sont pas commentées /etc/nanorc- les paramètres globaux sont-ils écrasés ~/.nanorc? Comment puis-je désactiver .nanorc?
Oxwivi
13
Oh, attends, je n'ai même pas de ~/.nanorcfichier.
Oxwivi
1
Attendez, attendez, comment se fait-il que le paramètre global avec toutes les includelignes n'active pas la syntaxe en surbrillance alors que je ne l'ai pas encore fait .nanorc?
Oxwivi
9
ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorcajoutez-les tous à votre fichier .nanorc ou créez-le s'il n'existe pas.
Thom Porter
9
include /usr/share/nano/*ne fonctionne pas
Jarek Jakubowski
74

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

Craig Barnes
la source
6
Merci de garder ces belles définitions de syntaxe dans GitHub.
Rubens Mariuzzo
3
Mes fichiers * .js ne fonctionnaient pas ... Modifiez / etc / nanorc pour supprimer toute autre syntaxe, comme indiqué dans la FAQ github.com/nanorc/… . ♥ Nano ♥ nanorc
Carlton
5
Je viens d'installer vos définitions de syntaxe sur Mac OSX. Il n’ya qu’une chose que j’aimerais noter, c’est que la couleur noire du crochet ouvert en python se perde sur le fond noir de mon terminal
Tom Busby
5
En fait, il y a un problème, une partie du texte en couleur est en noir! Si l'arrière-plan de notre terminal est noir, ces mots sont invisibles!
dukevin
9
Vous avez un lien mort
not2qubit
52

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

De plus, pour activer la mise en surbrillance d'une langue, vous ajoutez includele chemin d'accès à la définition de langue que vous souhaitez activer pour votre ~/.nanorcfichier. Ainsi, par exemple, pour activer C / C ++, vous ajouteriez cette ligne.

include /usr/share/nano/c.nanorc

La findcommande recherche des fichiers ou des répertoires dans le répertoire spécifié.

  • L’ -inameindicateur lui dit de ne rechercher que les fichiers dont le nom se termine par .nanorc.
  • Les -execindicateurs définissent une commande à exécuter sur chaque fichier trouvé.
  • Le {}est remplacé par le nom du fichier.
  • \;est utilisé pour signifier la fin de la commande à exécuter à la findcommande.
  • Enfin, >> ~/.nanorcla sortie est ajoutée à votre ~/.nanorcfichier.
Drew Chapin
la source
bon conseil et explication, merci beaucoup mec! ;)
daveoncode
Merci et ne semble pas avoir besoin du drapeau iname. Ce qui suit semble également fonctionner: /usr/share/nano/*.nanorc
Milind
Merci beaucoup!
VIX
7

Cela devrait inclure tous les plugins de coloration syntaxiques 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.

NotoriousPyro
la source
2

J'ai une nano syntaxe en surbrillance sur mon github .

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

entrez la description de l'image ici

et

entrez la description de l'image ici

Eric Leschinski
la source
2

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

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

Bon codage!

Norbert Mezei
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
utilisateur170859
la source
22
Il serait utile que vous expliquiez en quoi cette réponse est utile pour les nouveaux utilisateurs. Que fait la commande? Qu'est-ce que ça change? Suggérer au hasard d’exécuter une ligne de commande n’est pas utile.
Kevin Bowen
1

Les hauteurs syntaxiques les plus complètes et à jour pour nano sont conservées 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
Raveren
la source
La solution est bonne, mais je voudrais utiliser un autre dossier pour git clone. Le contenu du /tmpdossier sera supprimé à chaque démarrage du système et vous ne pourrez donc jamais exécuter un fichier git pull.
AB
Votre étiquette de langue est fausse. jsn'est pas bashou shell-scriptet j'ai placé le lien derrière le mot here. Où est le problème?
AB
1
@AB n'a pas d' importance si ce dossier a disparu depuis lors make installtous les fichiers de syntaxe sont copiés à l'endroit sûr où ils appartiennent: ~/.nano/syntax.
Pablo Un
1

Si vous rencontrez des difficultés après avoir suivi les instructions ci-dessus, vérifiez également si vous avez des définitions en double . Ceci désactivera toute la coloration syntaxique pour tous les fichiers . Je me suis heurté à cela après avoir ajouté un nanorc.nanorcfichier sans me rendre compte que ma ~/.nanorcsection 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)\>"
(...)
Dmvianna
la source
0

J'ai trouvé la coloration syntaxique pour js ici .

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

Cependant, pour obtenir un fichier auquel je pouvais ajouter, je devais d'abord copier de /usr/share/nano/nanorc.nanorcmon dossier local en tant que ~/.nanorc.

Forrest Erickson
la source
0

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

Thomas Weller
la source
0

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.

László Péter Varga
la source
-1

Je viens de faire ce script pour ajouter des 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 simplement manuellement le fichier ~ / .nanorc et supprimez les lignes qui donnent les erreurs.

#!/bin/bash

for i in `ls /usr/share/nano`
  do
    echo "include /usr/share/nano/$i" >> ~/.nanorc
  done
un peu de magie
la source