Como habilito o destaque de sintaxe no nano?

184

O nano pode destacar a sintaxe como gedit e vim? Como posso habilitá-lo? Preciso de pelo menos destaques de sintaxe bash e python.

Oxwivi
fonte
1
Muito obrigado pelos arquivos de sintaxe no repositório git, eu uso isso em todos os meus servidores agora ... mantenha o bom trabalho amigo !!!
1
@TheGene Comente e agradeça a resposta. O repo é creditado a ele, não a mim, quem faz a pergunta.
Oxwivi 15/09/14

Respostas:

175

O editor nano fornece destaque de sintaxe para alguns idiomas e scripts por si só. Verificação de saída/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

Vincule-os ao arquivo de nano-configuração do usuário, apresentado ~/.nanorccom algo semelhante a esta linha:

nits@nits-excalibur:~$ cat ~/.nanorc
include /usr/share/nano/sh.nanorc

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

captura de tela do destaque da sintaxe

Nota: Às vezes, você pode receber uma segmentation faultapós editar seu ~/.nanorcarquivo. Se esse erro ocorrer, desmarcar a variável de ambiente LANG ajuda. Você pode desabilitá-lo unset LANGno terminal. (Solução obtida 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 gravar include /usr/share/nano/*no arquivo ~ / .nanorc para permitir que todos os idiomas sejam destacados se a sua versão nano suportar.

Nitin Venkatesh
fonte
1
Essas linhas não são comentadas /etc/nanorc- as configurações globais estão sendo substituídas por ~/.nanorc? Como desativo .nanorc?
Oxwivi
13
Oh, espere, eu nem tenho um ~/.nanorcarquivo.
Oxwivi
1
Espere, espere, como é que a configuração global com todas as includelinhas não habilita os destaques da sintaxe, mesmo que eu não tenha .nanorc?
Oxwivi
9
ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorcanexe-os todos ao seu arquivo .nanorc ou crie-o se ele não existir.
Thom Porter
9
include /usr/share/nano/*está funcionando
Jarek Jakubowski 16/05
74

Sim, você pode, no entanto, as definições de sintaxe padrão são bastante ruins e incompletas. Estou mantendo um conjunto mais preciso de definições aqui , para quem as achar úteis.

Para instalar, execute:

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

Adicione essas linhas ao ~ / .nanorc

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

Especifique as cores que você deseja colorir e terá que ajustar essas cores de acordo com suas preferências. O ALL.nanorcdescreve os 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.

Craig Barnes
fonte
6
Obrigado por manter essas boas definições de sintaxe no GitHub.
Rubens Mariuzzo
3
Meus arquivos * .js não estavam funcionando ... editado o / etc / nanorc para remover qualquer outra sintaxe incluída na FAQ github.com/nanorc/… . ♥ Nano ♥ nanorc #
Carlton
5
Acabei de instalar seus padrões de sintaxe no Mac OSX. Há apenas uma coisa que eu notar, que é a cor preta do suporte em aberto em python se perde contra o fundo negro do meu terminal
Tom Busby
5
Na verdade, há um problema, parte do texto colorido é preto! Se o fundo do nosso terminal for preto, essas palavras serão invisíveis!
Dukevin 8/12/14
9
Você tem um link morto
not2qubit
52

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

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

Conforme 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

Também mencionado, para ativar o realce de um idioma, você adiciona includee o caminho para a definição de idioma que deseja ativar no seu ~/.nanorcarquivo. Então, por exemplo, para ativar o C / C ++, você adicionaria esta linha.

include /usr/share/nano/c.nanorc

O findcomando procura por arquivos ou diretórios no diretório especificado.

  • O -inamesinalizador diz para ele procurar apenas arquivos com um nome que termine com .nanorc.
  • Os -execsinalizadores definem um comando para executar em cada arquivo encontrado.
  • O {}é substituído pelo nome do arquivo.
  • \;é usado para significar o final do comando a ser executado no findcomando.
  • Por fim, >> ~/.nanorcfaz com que a saída seja anexada ao seu ~/.nanorcarquivo.
Drew Chapin
fonte
ótima dica e explicação, muito obrigado cara! ;)
daveoncode
Obrigado e não parece que você precisa da bandeira iname. Parece que o seguinte também funciona: /usr/share/nano/*.nanorc
Milind
Thansk muito!
VIX
7

Isso deve incluir todos os plug-ins de destaque de sintaxe incluídos por padrão, e todos os que você adicionar em / usr / share / nano:

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

Ou edite / etc / nanorc e veja se você pode descomentar as inclusões.

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

Basta executar esta linha sempre que adicionar uma configuração de cor .nanorc adicional.

NotoriousPyro
fonte
2

Eu tenho algumas nano sintaxe destacando no meu github .

Existem capturas de tela de exemplo ao vivo para html e php:

insira a descrição da imagem aqui

e

insira a descrição da imagem aqui

Eric Leschinski
fonte
2

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

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

Feliz codificação!

Norbert Mezei
fonte
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
user170859
fonte
22
Seria útil se você pudesse explicar por que essa é uma resposta útil para usuários mais novos. O que o comando está fazendo? O que isso muda? Sugerir aleatoriamente a execução de uma linha de comando não é útil.
precisa
1

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

Para instalar todos os marcadores do 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
Raveren
fonte
A solução é boa, mas eu usaria outra pasta para git clone. O conteúdo da /tmppasta será excluído a cada inicialização do sistema e, portanto, você nunca poderá executar um git pull.
AB
Sua tag de idioma está incorreta. jsnão é bashou shell-scriptcoloquei o link por trás da palavra here. Onde está o problema?
AB
1
@AB não importa se essa pasta está desaparecido desde quando make installtodos os arquivos de sintaxe são copiados para o lugar seguro onde eles pertencem: ~/.nano/syntax.
Pablo #
1

Para aqueles que estão tendo problemas após seguir as instruções acima, verifique também se possui definições duplicadas . Isso desabilitará todo o destaque de sintaxe para todos os arquivos . Eu me deparei com isso depois de adicionar um nanorc.nanorcarquivo e sem perceber que meu ~/.nanorcjá 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)\>"
(...)
dmvianna
fonte
0

Encontrei sintaxe destacando para js aqui .

Anexei-o no meu arquivo de usuário em ~/.nanorc

No entanto, para obter um arquivo no qual eu pudesse anexar, tive que copiar primeiro da /usr/share/nano/nanorc.nanorcminha pasta local como ~/.nanorc.

Forrest Erickson
fonte
0

Desativei acidentalmente o destaque usando o atalho de teclado Alt+ Y. Pode ser ligado novamente com o mesmo atalho de teclado.

Thomas Weller
fonte
0

Sei que é um tópico antigo, mas que minha solução possa ajudar

edite o arquivo em / etc / nanorc

A partir da linha 243, você pode encontrar muitos arquivos de inclusão. Simplesmente descomente os que você precisa, salve e pronto.

## Nanorc files
include "/usr/share/nano/nanorc.nanorc"

## C/C++
include "/usr/share/nano/c.nanorc"

## Makefiles
include "/usr/share/nano/makefile.nanorc"

## Cascading Style Sheets
include "/usr/share/nano/css.nanorc"

## Debian files
include "/usr/share/nano/debian.nanorc"

## Gentoo files
# include "/usr/share/nano/gentoo.nanorc"

Não tenho certeza se você atualizar o nano, essas alterações desaparecerão.

László Péter Varga
fonte
-1

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

#!/bin/bash

for i in `ls /usr/share/nano`
  do
    echo "include /usr/share/nano/$i" >> ~/.nanorc
  done
some_random_guy
fonte
Praticamente o mesmo que askubuntu.com/a/865425/158442 e askubuntu.com/a/538674/158442 fazer
Muru