Question Comment activer la mise en évidence de la syntaxe dans nano?


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.


149
2017-12-23 15:20


origine


Merci beaucoup pour les fichiers de syntaxe dans le dépôt git, je les utilise maintenant sur tous mes serveurs ... continuez le bon travail matey !!!
@TheGene Commenter et remercier pour la réponse. Le repo lui est crédité, pas moi, celui qui pose la question. - Oxwivi


Réponses:


L'éditeur nano fournit une mise en évidence de la syntaxe 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

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

Maintenant, la coloration syntaxique est activée dans nano pour n'importe quel 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 édité votre ~/.nanorc fichier. Si une telle erreur survient, désélectionnez la LANG variable d'environnement aide. Vous pouvez le désactiver avec unset LANG dans le terminal. (Solution obtenue de ici)

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

Vous pouvez aussi écrire include /usr/share/nano/* dans le fichier ~ / .nanorc pour activer toutes les langues surlignées si votre version nano le supporte.


148
2017-12-23 16:07



Ces lignes ne sont pas commentées dans /etc/nanorc - les paramètres globaux sont-ils écrasés par ~/.nanorc? Comment puis-je désactiver .nanorc? - Oxwivi
Oh, attends, je n'ai même pas de ~/.nanorc fichier. - Oxwivi
Attendez, attendez, comment se fait le réglage global avec tous les include les lignes ne permettant pas de mettre en évidence la syntaxe même si je n'ai pas .nanorc? - Oxwivi
ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorc ajoutez-les tous à votre fichier .nanorc ou créez-le s'il n'existe pas. - Thom Porter
include /usr/share/nano/* ne fonctionne pas - Jarek Jakubowski


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


72
2017-08-27 16:17



Merci de garder ces belles définitions de syntaxe dans GitHub. - Rubens Mariuzzo
Mes fichiers * .js ne fonctionnaient pas ... édité / etc / nanorc pour supprimer toute autre syntaxe incluse dans la FAQ github.com/nanorc/…. Nano Nanorc - Carlton
Je viens d'installer vos définitions de syntaxe sur Mac OSX. Il n'y a qu'une seule chose que je noterais, qui est la couleur noire du support ouvert en python se perd sur le fond noir de mon terminal - Tom Busby
En fait, il y a un problème, une partie du texte coloré est noir! Si notre arrière-plan terminal est noir, ces mots sont invisibles! - dukevin
+ druciferre fournit une excellente commande ci-dessous qui ajoute automatiquement tous les fichiers de syntaxe à votre fichier .nanorc. J'ai changé le chemin pour indiquer votre emplacement d'installation par défaut: find $HOME/.nano/syntax/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc - wasatchwizard


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 évidence pour une langue, vous ajoutez include et le chemin de la définition de la langue que vous souhaitez activer pour votre ~/.nanorc fichier. Ainsi, par exemple, pour activer C / C ++, vous devez ajouter cette ligne.

include /usr/share/nano/c.nanorc

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

  • le -iname Le drapeau lui indique de ne rechercher que les fichiers portant un nom se terminant 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 le find commander.
  • Enfin, >> ~/.nanorc provoque l'ajout de la sortie à votre ~/.nanorc fichier.

37
2017-10-18 18:22



bonne astuce et explication, merci beaucoup homme! ;) - daveoncode


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

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 .nanorc supplémentaire.


6
2017-12-28 14:23





J'ai une nano-syntaxe à surligner à mon github.

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

enter image description here

et

enter image description here


2
2018-05-03 06:57





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
2018-06-28 03:08



Il serait utile d’expliquer pourquoi il s’agit d’une réponse utile pour les nouveaux utilisateurs. Que fait la commande? Qu'est-ce que ça change? Suggérer au hasard de lancer une ligne de commande n'est pas utile. - Kevin Bowen


Les plus récents et les plus complets des syntaxes syntaxiques 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

1
2017-07-29 10:21



La solution est bonne, mais je voudrais utiliser un autre dossier pour git clone. Le contenu de la /tmp dossier sera supprimé à chaque démarrage du système et par conséquent, vous ne pourrez jamais exécuter un git pull. - A.B.
Votre étiquette de langue est incorrecte. js n'est pas bash ou shell-script et j'ai placé le lien derrière le mot here. Où est le problème? - A.B.
@UN B. ce n'est pas grave si ce dossier est parti depuis quand vous make installtous les fichiers de syntaxe sont copiés à l'endroit sûr où ils appartiennent: ~/.nano/syntax. - Pablo Bianchi


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

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

Heureux codage!


1
2018-02-12 04:00





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

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

Cependant, pour obtenir un fichier dans lequel je pourrais ajouter, je devais d'abord copier depuis /usr/share/nano/nanorc.nanorc à mon dossier local d'abord comme ~/.nanorc.


0
2017-07-05 23:21





Pour ceux qui ont des problèmes après avoir suivi les instructions ci-dessus, vérifiez également si vous avez définitions dupliquées. Ceux-ci vont désactiver toute la coloration syntaxique pour tous les fichiers. Je suis tombé sur cela après avoir ajouté un nanorc.nanorc fichier, et ne réalisant pas 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)\>"
(...)

0
2018-02-19 04:50





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

-1
2018-02-04 10:35



À peu près la même chose que askubuntu.com/a/865425/158442 et askubuntu.com/a/538674/158442 faire - muru