6 votes

Comment puis-je activer la coloration syntaxique dans un fichier Python sans extension ?

Activer la coloration syntaxique dans Nano est assez simple, mais je viens de rencontrer un problème non standard. J'ai un exécutable Python script qui n'a pas d'extension.

Il fait partie d'un environnement virtualenv et voici comment il démarre :

#!/usr/bin/env python
# -*- coding: utf-8 -*-

9voto

Fabiano Soriani Points 543

Vous pouvez sélectionner une coloration syntaxique spécifique à l'aide de la commande --syntax l'option, par exemple

nano --syntax=python myscript

2voto

Mufaka Points 54

La définition Python par défaut de Nano recherche l'une des deux choses suivantes : une extension ou une correspondance d'en-tête, telles que définies dans la section /usr/share/nano/python.nanorc :

syntax "python" "\.py$"
header "^#!.*/python[-0-9._]*"

Cela correspondrait donc à #!/bin/python . À moins que vous n'écriviez quelque chose pour le système, coder en dur l'exécutable Python est une assez mauvaise idée... C'est pourquoi env python est utilisé de nos jours.

La façon la plus simple de corriger Nano est de modifier la définition en exécutant sudoedit /usr/share/nano/python.nanorc et de modifier le header ligne à :

header "^#!.*python.*"

C'est un lot plus ouvert.


Il existe en fait un jeu de fichiers syntaxiques massivement amélioré disponible à l'adresse suivante le projet nanorc sur Github, qui, en plus d'améliorer d'autres choses, précise :

header "^#!.*/(env +)?python[-0-9._]*( |$)"

Il n'est plus maintenu mais il est toujours une amélioration massive par rapport aux valeurs par défaut. Il est assez simple à installer :

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

Puis nano ~/.nanorc et ajoutez :

include ~/.nano/syntax/ALL.nanorc

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