Come abilitare l'evidenziazione della sintassi in nano?

153

Può nano evidenziare la sintassi come gedit e vim? Come posso abilitarlo? Ho bisogno almeno di evidenziare la sintassi di bash e python.

    
posta Oxwivi 23.12.2011 - 16:20

11 risposte

153

L'editor nano fornisce l'evidenziazione della sintassi per alcune lingue e script da solo. Scopri /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

Collegali al file di configurazione nano del tuo utente presente a ~/.nanorc con qualcosa di simile a questa riga:

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

Ora l'evidenziazione della sintassi è abilitata in nano per qualsiasi file collegato (puoi anche collegare più file)

Nota.Avoltepotrestiottenereunsegmentationfaultdopoavermodificatoilfile~/.nanorc.Sesiverificataleerrore,ladisattivazionedellavariabilediambienteLANGaiuta.PuoidisinserirloconunsetLANGnelterminale.(Soluzioneottenutada qui )

Esistono anche altre soluzioni se non sei soddisfatto della tua evidenziazione bash. Un esempio di tale può essere trovato qui

Puoi anche scrivere include /usr/share/nano/* nel file ~ / .nanorc per attivare tutte le lingue da evidenziare se la tua versione nano lo supporta.

    
risposta data Nitin Venkatesh 23.12.2011 - 17:07
70

Sì, è possibile, tuttavia le definizioni di sintassi predefinite sono piuttosto scarse e incomplete. Sto mantenendo un insieme più accurato di definizioni qui , per chiunque le trovi utili.

Per installare, esegui:

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

Aggiungi queste linee al ~ / .nanorc

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

Specifica quelli per cui vuoi colorare e dovrai accordare questi colori alle tue preferenze. % Co_de% descrive le funzionalità per tutti i file non ancora classificati. Questi sono gli strumenti necessari per iniziare, non il prodotto finale fine.

    
risposta data Craig Barnes 27.08.2012 - 18:17
41

Ho usato questo comando per abilitare rapidamente tutte le lingue disponibili.

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

Come menzionato in altre risposte, /usr/share/nano/ contiene le definizioni per lingue diverse.

$ 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

Inoltre, per abilitare l'evidenziazione per una lingua, aggiungi include e il percorso alla definizione della lingua che desideri attivare sul tuo file ~/.nanorc . Ad esempio, per abilitare C / C ++, aggiungere questa riga.

include /usr/share/nano/c.nanorc

Il comando find cerca i file o le directory all'interno della directory specificata.

  • Il flag -iname dice di cercare solo i file con un nome che termina con .nanorc .
  • I flag -exec definiscono un comando da eseguire su ogni file trovato.
  • Il {} viene sostituito con il nome del file.
  • \; è usato per indicare la fine del comando da eseguire al comando find .
  • Infine, >> ~/.nanorc fa sì che l'output venga aggiunto al tuo file ~/.nanorc .
risposta data Drew Chapin 18.10.2014 - 20:22
6

Questo dovrebbe includere tutti i plugin di evidenziazione della sintassi inclusi per impostazione predefinita e qualsiasi elemento aggiunto a / usr / share / nano:

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

Oppure modifica / etc / nanorc e vedi se riesci a decommentare gli include.

Funziona se hai una versione di nano che si rifiuta di accettare i caratteri jolly nel file .nanorc.

Esegui questa linea ogni volta che aggiungi una configurazione di colori .nanorc aggiuntiva.

    
risposta data NotoriousPyro 28.12.2016 - 15:23
2

Ho evidenziato alcuni nano sintassi su mio github .

Sono disponibili schermate di esempio dal vivo per html e php:

e

    
risposta data 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
    
risposta data user170859 28.06.2013 - 05:08
1

Gli hilighters di sintassi più completi e aggiornati per nano vengono mantenuti qui .

Per installare tutti gli evidenziatori per il tuo utente, esegui semplicemente:

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

Puoi usare questo per includere tutto: (aggiungi questo al file ~ / nanorc)

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

Buon codice!

    
risposta data Norbert Mezei 12.02.2016 - 05:00
0

Ho trovato l'evidenziazione della sintassi per js qui .

L'ho aggiunto al mio file utente in ~/.nanorc

Tuttavia per ottenere un file in cui potrei aggiungere, dovevo prima copiare da /usr/share/nano/nanorc.nanorc nella mia cartella locale come ~/.nanorc .

    
risposta data Forrest Erickson 06.07.2015 - 01:21
0

Per coloro che hanno problemi dopo aver seguito le istruzioni sopra, controlla anche se hai definizioni duplicate . Questi disabiliteranno l'evidenziazione della sintassi per tutti i file . Mi sono imbattuto in questo dopo aver aggiunto un file nanorc.nanorc e non rendermi conto che il mio ~/.nanorc aveva già una sezione identica, cioè:

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

Ho appena realizzato questo script per aggiungere i colori a nano: Ma ovviamente devi avere i codici colore in / usr / share / nano perché funzioni. Se ci sono errori: basta modificare manualmente il file ~ / .nanorc e rimuovere le righe che danno gli errori.

#!/bin/bash

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

Leggi altre domande sui tag