Como habilitar o realce de sintaxe no nano?

145

O nano pode realçar a sintaxe como o gedit e o vim? Como posso ativá-lo? Preciso de pelo menos os destaques da sintaxe bash e python.

    
por Oxwivi 23.12.2011 / 16:20

11 respostas

145

O editor nano fornece destaque de sintaxe para alguns idiomas e scripts por si só. Confira /usr/share/nano/

[email protected]:~$ 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

Vincule-os ao arquivo de configuração nano do seu usuário presente em ~/.nanorc com algo semelhante a esta linha:

[email protected]:~$ cat ~/.nanorc
include /usr/share/nano/sh.nanorc

Agora, o realce de sintaxe está ativado no nano para qualquer arquivo vinculado (você também pode vincular vários arquivos)

Observação: às vezes, você pode receber um segmentation fault depois de ter editado o arquivo ~/.nanorc . Se tal erro ocorrer, desarmar a variável de ambiente LANG ajudará. Você pode cancelar a configuração com unset LANG no terminal. (Solução obtida de aqui )

Existem também outras soluções se você não estiver satisfeito com o destaque do bash. Um exemplo disso pode ser encontrado aqui

Você também pode escrever include /usr/share/nano/* no arquivo ~ / .nanorc para permitir que todos os idiomas sejam destacados se a sua versão nano for compatível.

    
por Nitin Venkatesh 23.12.2011 / 17:07
69

Sim, você pode, no entanto, as definições de sintaxe padrão são muito ruins e incompletas. Eu estou mantendo um conjunto mais preciso de definições aqui , para qualquer um que as achar útil.

Para instalar, execute:

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

Adicione estas linhas ao ~ / .nanorc

include ~/.nano/syntax/html.nanorc
include ~/.nano/syntax/css.nanorc
include ~/.nano/syntax/php.nanorc
include ~/.nano/syntax/ALL.nanorc

Especifique os que você deseja colorir, e você terá que ajustar essas cores de acordo com suas preferências. O ALL.nanorc descreve recursos para todos os arquivos ainda não classificados. Estas são as ferramentas que você precisa para começar, não o produto final polido.

    
por Craig Barnes 27.08.2012 / 18:17
36

Eu usei este comando para ativar rapidamente todos os idiomas disponíveis.

find /usr/share/nano/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc

Como mencionado em outras respostas, /usr/share/nano/ contém as definições para diferentes idiomas.

$ 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

Além disso, para ativar o realce de um idioma, adicione include e o caminho para a definição de idioma que você deseja ativar no arquivo ~/.nanorc . Por exemplo, para habilitar o C / C ++, você adicionaria essa linha.

include /usr/share/nano/c.nanorc

O comando find procura por arquivos ou diretórios dentro do diretório especificado.

  • O sinalizador -iname diz para procurar apenas arquivos com um nome que termine com .nanorc .
  • O -exec flags define um comando para executar em cada arquivo encontrado.
  • O {} é substituído pelo nome do arquivo.
  • \; é usado para significar o final do comando para executar o comando find .
  • Por fim, >> ~/.nanorc faz com que a saída seja anexada ao seu arquivo ~/.nanorc .
por Drew Chapin 18.10.2014 / 20:22
6

Isso deve incluir todos os plug-ins de realce de sintaxe incluídos por padrão e qualquer um que você adicionar a / usr / share / nano:

find /usr/share/nano -name '*.nanorc' -printf "include %p\n" > ~/.nanorc

Ou edite / etc / nanorc e veja se você pode remover o comentário dos includes.

Isso funciona se você tiver uma versão do nano que se recusa a aceitar curingas no arquivo .nanorc.

Basta executar esta linha toda vez que você adicionar uma configuração de cor adicional .nanorc.

    
por NotoriousPyro 28.12.2016 / 15:23
2

Eu tenho alguns destaques da sintaxe nano no meu github .

Há capturas de tela de exemplos ao vivo para html e php:

e

    
por Eric Leschinski 03.05.2015 / 08:57
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
    
por user170859 28.06.2013 / 05:08
1

Os hilighters de sintaxe mais completos e atualizados do nano são mantidos aqui .

Para instalar todos os marcadores para o seu usuário, basta executar:

cd /tmp
git clone https://github.com/tech4david/nano-highlight.git
cd nano-highlight/
make install
echo "include ~/.nano/syntax/ALL.nanorc" >> ~/.nanorc
    
por Raveren 29.07.2015 / 12:21
1

Você pode usar isso para incluir todos: (adicione isso ao arquivo ~ / nanorc)

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

Codificação feliz!

    
por Norbert Mezei 12.02.2016 / 05:00
0

Encontrei o destaque da sintaxe para js aqui .

Eu o adicionei ao arquivo do meu usuário em ~/.nanorc

No entanto, para obter um arquivo no qual eu pudesse acrescentar, primeiro copiei /usr/share/nano/nanorc.nanorc para minha pasta local primeiro como ~/.nanorc .

    
por Forrest Erickson 06.07.2015 / 01:21
0

Para aqueles que estão com problemas depois de seguir as instruções acima, verifique também se você tem definições duplicadas . Isso desabilitará todo destaque de sintaxe para todos os arquivos . Eu corri para isso depois de adicionar um arquivo nanorc.nanorc , e não percebendo que meu ~/.nanorc já tinha uma seção idêntica, ou seja:

## 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)\>"
(...)
    
por dmvianna 19.02.2016 / 05:50
-1

Acabei de criar este script para adicionar as cores ao nano: Mas é claro que você tem que ter os códigos de cores em / usr / share / nano para que isso funcione. Se houver erros: edite manualmente o arquivo ~ / .nanorc e remova as linhas que fornecem os erros.

#!/bin/bash

for i in 'ls /usr/share/nano'
  do
    echo "include /usr/share/nano/$i" >> ~/.nanorc
  done
    
por some_random_guy 04.02.2016 / 11:35