Come abilitare l'evidenziazione della sintassi in nano?


184

Nano può evidenziare la sintassi come gedit e vim? Come posso abilitarlo? Ho bisogno almeno dei punti salienti della sintassi bash e python.


1
Grazie mille per i file di sintassi nel repository git, ora lo uso su tutti i miei server ... continuate così amico !!!

1
@TheGene Commenta e ringrazia la risposta. Il repository è accreditato a lui, non a me, colui che pone la domanda.
Oxwivi,

Risposte:


175

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

Collegali al file di configurazione nano del tuo utente presente ~/.nanorccon qualcosa di simile a questa linea:

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

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

screenshot dell'evidenziazione della sintassi

Nota: a volte potresti ricevere un segmentation faultdopo aver modificato il tuo ~/.nanorcfile. Se si verifica un errore del genere, è utile annullare l' impostazione della variabile di ambiente LANG . Puoi disinserirlo con unset LANGnel terminale. (Soluzione ottenuta da qui )

Ci sono anche altre soluzioni se non sei soddisfatto dell'evidenziazione bash. Un esempio di questo può essere trovato qui

Puoi anche scrivere include /usr/share/nano/*nel file ~ / .nanorc per abilitare l'evidenziazione di tutte le lingue se la tua versione nano lo supporta.


1
Quelle righe sono senza commento /etc/nanorc- le impostazioni globali vengono sovrascritte ~/.nanorc? Come disabilito .nanorc?
Oxwivi,

13
Oh aspetta, non ho nemmeno un ~/.nanorcfile.
Oxwivi,

1
Aspetta, aspetta, come includemai l'impostazione globale con tutte le linee non abilita i punti salienti della sintassi, anche se non l'ho fatto .nanorc?
Oxwivi,

9
ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorcaggiungili tutti al tuo file .nanorc o crealo se non esiste.
Thom Porter,

9
include /usr/share/nano/*non funziona
Jarek Jakubowski

74

Sì, puoi, tuttavia le definizioni di sintassi predefinite sono piuttosto scadenti e incomplete. Sto mantenendo un insieme più preciso di definizioni qui , per chiunque le trovi utili.

Per installare, eseguire:

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

Aggiungi queste righe a ~ / .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 desideri colorare, e dovrai accordare questi colori in base alle tue preferenze. La ALL.nanorcdescrive le funzioni per tutti i file ancora non classificate. Questi sono gli strumenti necessari per iniziare, non il prodotto finale lucido.


6
Grazie per mantenere quelle belle definizioni di sintassi in GitHub.
Rubens Mariuzzo,

3
I miei file * .js non funzionavano ... modificati / etc / nanorc per rimuovere qualsiasi altra sintassi inclusa nelle FAQ github.com/nanorc/… . ♥ ♥ Nano nanorc
Carlton

5
Ho appena installato i parametri di sintassi su Mac OSX. C'è solo una cosa che noterei, che è il colore nero della parentesi aperta in pitone che si perde sullo sfondo nero del mio terminale
Tom Busby,

5
In realtà c'è un problema, parte del testo colorato è nero! Se il nostro sfondo del terminale è nero, queste parole sono invisibili!
Dukevin,

9
Hai un collegamento morto
not2qubit il

52

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 diverse lingue.

$ 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 consentire l'evidenziazione di una lingua, aggiungi includee il percorso della definizione della lingua che desideri abilitare nel tuo ~/.nanorcfile. Quindi, ad esempio, per abilitare C / C ++ devi aggiungere questa riga.

include /usr/share/nano/c.nanorc

Il findcomando cerca file o directory all'interno della directory specificata.

  • Il -inameflag indica che cerca solo i file con un nome che termina .nanorc.
  • I -execflag definiscono un comando da eseguire su ogni file trovato.
  • La {}viene sostituito con il nome del file.
  • \;è usato per indicare la fine del comando da eseguire al findcomando.
  • Infine, >> ~/.nanorcfa sì che l'output venga aggiunto al tuo ~/.nanorcfile.

ottimo consiglio e spiegazione, grazie mille amico! ;)
daveoncode

Grazie e non sembra che tu abbia bisogno della bandiera iname. Quanto segue sembra funzionare anche find /usr/share/nano/*.nanorc
Milind

Grazie mille!
VIX,

7

Ciò dovrebbe includere tutti i plug-in di evidenziazione della sintassi inclusi per impostazione predefinita e quelli aggiunti a / usr / share / nano:

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

Oppure modifica / etc / nanorc e vedi se riesci a rimuovere il commento dalle inclusioni.

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

Esegui questa riga ogni volta che aggiungi un'ulteriore configurazione di colore .nanorc.



2

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

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

Buona programmazione!


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

22
Sarebbe utile se tu potessi spiegare perché questa è una risposta utile per i nuovi utenti. Cosa sta facendo il comando? Cosa cambia Suggerire a caso di eseguire una riga di comando non è utile.
Kevin Bowen,

1

I hilighter di sintassi più completi e aggiornati per nano sono mantenuti qui .

Per installare tutti gli evidenziatori per il tuo utente basta eseguire:

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

La soluzione è buona, ma vorrei usare un'altra cartella per git clone. Il contenuto della /tmpcartella verrà eliminato ad ogni avvio del sistema e pertanto non è possibile eseguire a git pull.
AB

Il tuo tag di lingua è sbagliato. jsnon è basho shell-scripte ho inserito il link dietro la parola here. Dov'è il problema?
AB

1
@AB non importa se quella cartella non c'è più da quando si make installtutti i file di sintassi vengono copiati sul luogo sicuro a cui appartengono: ~/.nano/syntax.
Pablo A

1

Per coloro che hanno problemi dopo aver seguito le istruzioni sopra, controlla anche se hai definizioni duplicate . Ciò disabiliterà l' evidenziazione di tutta la sintassi per tutti i file . Mi sono imbattuto in questo dopo aver aggiunto un nanorc.nanorcfile e non aver realizzato che la mia ~/.nanorcaveva già una sezione identica, ovvero:

## 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)\>"
(...)

0

Ho trovato l'evidenziazione della sintassi per js qui .

L'ho aggiunto nel mio file utente all'indirizzo ~/.nanorc

Tuttavia, per ottenere un file nel quale poterlo aggiungere, per prima cosa ho dovuto copiarlo /usr/share/nano/nanorc.nanorcnella mia cartella locale ~/.nanorc.


0

Ho disabilitato accidentalmente l'evidenziazione usando la scorciatoia da tastiera Alt+ Y. Può essere riacceso con la stessa scorciatoia da tastiera.


0

So che è un vecchio thread, ma la mia soluzione può essere d'aiuto

modifica il file in / etc / nanorc

Dalla linea 243 puoi trovare molti file include. Basta decommentare quelli di cui hai bisogno, salvare e fare.

## 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"

Non sono sicuro che se aggiorni nano queste modifiche svaniranno.


-1

Ho appena creato questo script per aggiungere i colori a nano: Ma ovviamente devi avere i codici colore in / usr / share / nano affinché 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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.