Como posso ativar o realce de sintaxe em um arquivo Python sem uma extensão?

6

Ativar o realce de sintaxe no Nano é bastante simples, mas acabei de me deparar com um problema não padrão. Eu tenho um script Python executável que não tem uma extensão.

Faz parte de um ambiente virtualenv, então é assim que começa:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
    
por Oli 28.05.2014 / 10:11

2 respostas

8

Você pode selecionar um realce de sintaxe específico usando a opção --syntax , por exemplo

nano --syntax=python myscript
    
por Florian Diesch 28.05.2014 / 10:19
1

A definição Python padrão do Nano procura uma das duas coisas: uma extensão ou uma correspondência de cabeçalho, conforme definido em /usr/share/nano/python.nanorc :

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

Então, isso corresponderia a #!/bin/python . A menos que você esteja escrevendo algo para o sistema, codificar o executável do Python é uma idéia muito ruim ... É por isso que env python é usado atualmente.

A maneira mais simples de corrigir o Nano é editar a definição executando sudoedit /usr/share/nano/python.nanorc e alterando a linha header para:

header "^#!.*python.*"

Esse é um lote mais aberto.

Há, na verdade, um conjunto de arquivos de sintaxe bastante aprimorado disponível no projeto nanorc no Github, que, além de melhorar outras coisas, especifica:

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

Não é mais mantido, mas ainda é uma grande melhoria em relação aos padrões. É bastante simples de instalar:

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

Então nano ~/.nanorc e adicione:

include ~/.nano/syntax/ALL.nanorc
    
por Oli 28.05.2014 / 10:11

Tags