Você pode selecionar um realce de sintaxe específico usando a opção --syntax
, por exemplo
nano --syntax=python myscript
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 -*-
Você pode selecionar um realce de sintaxe específico usando a opção --syntax
, por exemplo
nano --syntax=python myscript
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