Vraag Hoe schakel ik syntax highlighting in nano in?


Kan nano syntax highlighten zoals gedit en vim? Hoe kan ik het inschakelen? Ik heb op zijn minst bash en python syntax hoogtepunten nodig.


149
2017-12-23 15:20


oorsprong


Heel erg bedankt voor de syntaxisbestanden in de git repo, ik gebruik dit nu op al mijn servers ... ga zo door met het goede werk !!!
@TheGene Commentaar en bedankt voor het antwoord. De repo wordt bijgeschreven op hem, niet ik, degene die de vraag stelt. - Oxwivi


antwoorden:


De nano-editor biedt syntax highlighting voor een paar talen en scripts op zichzelf. Uitchecken /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

Koppel ze aan het nano-configuratiebestand van uw gebruiker dat aanwezig is op ~/.nanorc met iets vergelijkbaars aan deze regel:

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

Nu is het accentueren van syntaxis in nano ingeschakeld voor welk bestand dan ook dat u hebt gekoppeld (u zou ook meerdere bestanden kunnen koppelen)

screenshot of syntax highlighting

Opmerking: soms krijgt u mogelijk een segmentation fault nadat je je hebt bewerkt ~/.nanorc het dossier. Als een dergelijke fout optreedt, schakelt u de LANG omgevingsvariabele helpt. Je kunt het uitschakelen met unset LANG in de terminal. (Oplossing verkregen van hier)

Er zijn ook andere oplossingen als u niet tevreden bent met uw bash-markering. Een voorbeeld hiervan kan worden gevonden hier

Je kunt ook schrijven include /usr/share/nano/* naar het bestand ~ / .nanorc om alle talen in te schakelen als uw nano-versie dit ondersteunt.


148
2017-12-23 16:07



Die regels zijn niet opgenomen in /etc/nanorc - worden de algemene instellingen overschreven door ~/.nanorc? Hoe schakel ik uit .nanorc? - Oxwivi
Oh wacht, ik heb niet eens een ~/.nanorc het dossier. - Oxwivi
Wacht, wacht, hoe komt het dat de algemene instelling met alle include regels maken geen syntaxis-hoogtepunten mogelijk, hoewel ik dat niet heb gedaan .nanorc? - Oxwivi
ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorc voeg ze allemaal toe aan je .nanorc-bestand, of maak het aan als het niet bestaat. - Thom Porter
include /usr/share/nano/* werkt niet - Jarek Jakubowski


Ja dat kan, maar de standaard syntaxisdefinities zijn vrij slecht en onvolledig. Ik behoud een nauwkeurigere reeks definities hier, voor iedereen die ze nuttig vindt.

Om te installeren, voer:

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

Voeg deze regels toe aan de ~ / .nanorc

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

Geef op voor welke u wilt inkleuren en u moet deze kleuren afstemmen op uw voorkeuren. De ALL.nanorc beschrijft functies voor alle nog niet-geclassificeerde bestanden. Dit zijn de gereedschappen die u nodig hebt om aan de slag te gaan, niet het gepolijste eindproduct.


72
2017-08-27 16:17



Bedankt voor het bijhouden van die mooie syntaxisdefinities in GitHub. - Rubens Mariuzzo
Mijn * .js-bestanden werkten niet ... bewerkt / etc / nanorc om eventuele andere syntaxis te verwijderen bevat de veelgestelde vragen github.com/nanorc/.... Nano nanorc - Carlton
Ik heb zojuist je syntaxis defs geïnstalleerd op Mac OSX. Er is maar één ding dat ik zou opmerken, namelijk de zwarte kleur van de open beugel in python verdwaalt tegen de zwarte achtergrond van mijn terminal - Tom Busby
Er is eigenlijk een probleem, een deel van de gekleurde tekst is zwart! Als onze achtergrond zwart is, zijn deze woorden onzichtbaar! - dukevin
+ druciferre biedt een geweldige opdracht hieronder waarmee alle syntaxisbestanden automatisch aan uw .nanorc-bestand worden toegevoegd. Ik heb het pad zodanig gewijzigd dat het naar uw standaard installatielocatie verwijst: find $HOME/.nano/syntax/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc - wasatchwizard


Ik gebruikte dit commando om snel alle beschikbare talen in te schakelen.

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

Zoals vermeld in andere antwoorden, /usr/share/nano/ bevat de definities voor verschillende talen.

$ 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

Ook genoemd, om het markeren van een taal toe te laten, voegt u toe include en het pad naar de taaldefinitie die u wilt inschakelen voor uw ~/.nanorc het dossier. Als u bijvoorbeeld C / C ++ wilt inschakelen, voegt u deze regel toe.

include /usr/share/nano/c.nanorc

De find opdrachtzoekopdrachten voor bestanden of mappen binnen de opgegeven map.

  • De -iname flag vertelt het om alleen naar bestanden te zoeken met een naam die eindigt met .nanorc.
  • De -exec flags definieert een commando om uit te voeren op elk gevonden bestand.
  • De {} wordt vervangen door de bestandsnaam.
  • \; wordt gebruikt om het einde aan te geven van de opdracht die moet worden uitgevoerd naar de find opdracht.
  • Ten slotte, >> ~/.nanorc zorgt ervoor dat de uitvoer aan je wordt toegevoegd ~/.nanorc het dossier.

37
2017-10-18 18:22



geweldige tip en uitleg, heel erg bedankt man! ;) - daveoncode


Dit zou alle plug-ins voor syntax-highlighting moeten bevatten die standaard zijn opgenomen, en alle add-ons die u toevoegt aan / usr / share / nano:

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

Of, bewerk / etc / nanorc en kijk of je de include kunt uncomment.

Dit werkt als u een versie van nano hebt die weigert jokertekens in het .nanorc-bestand te accepteren.

Voer deze regel uit elke keer dat u een extra .nanorc-kleurenconfiguratie toevoegt.


6
2017-12-28 14:23





Ik heb wat nano-syntaxis gemarkeerd mijn github.

Er zijn live voorbeeldschermen voor html en php:

enter image description here

en

enter image description here


2
2018-05-03 06:57





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

1
2018-06-28 03:08



Het zou handig zijn als u kunt uitleggen waarom dit een nuttig antwoord is voor nieuwere gebruikers. Wat doet het commando? Wat verandert het? Willekeurig voorstellen om een ​​opdrachtregel uit te voeren, is niet nuttig. - Kevin Bowen


De meest complete en up-to-date syntaxis van hilighters voor nano worden gehandhaafd hier.

Ga als volgt te werk om alle markeringen voor uw gebruiker te installeren:

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

1
2017-07-29 10:21



De oplossing is goed, maar ik zou een andere map gebruiken voor git clone. De inhoud van de /tmp map wordt bij elke systeemstart verwijderd en daarom kunt u nooit een git pull. - A.B.
Uw taaltag is verkeerd. js is niet bash of shell-script en ik heb de link achter het woord geplaatst here. Waar is het probleem? - A.B.
@ A.B. het maakt niet uit of die map weg is sinds wanneer jij make install alle syntaxisbestanden worden gekopieerd naar de veilige plaats waar ze horen: ~/.nano/syntax. - Pablo Bianchi