Jak włączyć wyróżnianie składni w nano?

184

Czy nano może wyróżniać składnie, takie jak gedit i vim? Jak mogę to włączyć? Potrzebuję przynajmniej skrótów składni bash i python.

Oxwivi
źródło
1
Bardzo dziękuję za pliki składniowe w repozytorium git, używam tego teraz na wszystkich moich serwerach ... kontynuuj dobrą pracę kolego !!!
1
@TheGene Comment i dziękuję za odpowiedź. Repozytorium przypisuje się jemu, a nie mnie, który zadaje pytanie.
Oxwivi,

Odpowiedzi:

175

Nano edytor sam z siebie wyróżnia składnię kilku języków i skryptów. Sprawdzić/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

Połącz je z plikiem nano konfiguracji użytkownika, który znajduje się na stronie, ~/.nanorcczymś podobnym do tej linii:

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

Teraz podświetlanie składni jest włączone w nano dla każdego pliku, który łączysz (możesz również połączyć wiele plików)

zrzut ekranu podświetlania składni

Uwaga: Czasami może pojawić się segmentation faultpo edycji ~/.nanorcpliku. Jeśli wystąpi taki błąd, rozbrajanie zmiennej środowiskowej LANG pomaga. Możesz go rozbroić unset LANGw terminalu. (Rozwiązanie uzyskane tutaj )

Istnieją również inne rozwiązania, jeśli nie jesteś zadowolony z podświetlenia bash. Jeden przykład takiego można znaleźć tutaj

Możesz również napisać include /usr/share/nano/*do pliku ~ / .nanorc, aby umożliwić wyróżnienie wszystkich języków, jeśli obsługuje go Twoja wersja nano.

Nitin Venkatesh
źródło
1
Te wiersze nie są komentowane /etc/nanorc- czy ustawienia globalne są zastępowane ~/.nanorc? Jak mogę wyłączyć .nanorc?
Oxwivi
13
Och, czekaj, nawet nie mam ~/.nanorcpliku.
Oxwivi
1
Czekaj, czekaj, dlaczego globalne ustawienie ze wszystkimi includewierszami nie włącza podświetlania składni, mimo że nie mam .nanorc?
Oxwivi
9
ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorcdołącz je wszystkie do pliku .nanorc lub utwórz go, jeśli nie istnieje.
Thom Porter
9
include /usr/share/nano/*nie działa
Jarek Jakubowski
74

Tak, jednak domyślne definicje składni są dość słabe i niepełne. Ja zachowaniu bardziej dokładny zestaw definicji tutaj dla każdego, kto znajdzie je użytecznymi.

Aby zainstalować, uruchom:

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

Dodaj te linie do ~ / .nanorc

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

Wybierz te, dla których chcesz mieć kolorowanie, a będziesz musiał dostosować te kolory do swoich preferencji. ALL.nanorcOpisuje możliwości dla wszystkich plików jeszcze niesklasyfikowanych. Są to narzędzia, których potrzebujesz, aby rozpocząć, a nie końcowy produkt dopracowany.

Craig Barnes
źródło
6
Dziękujemy za zachowanie tych miłych definicji składni w GitHub.
Rubens Mariuzzo
3
Moje pliki * .js nie działały ... edytowałem / etc / nanorc, aby usunąć jakąkolwiek inną składnię, zgodnie z FAQ github.com/nanorc/… . ♥ Nano ♥ nanorc
Carlton
5
Właśnie zainstalowałem twoje definicje składni w Mac OSX. Zauważyłem tylko jedną rzecz: czarny kolor nawiasu otwartego w pythonie gubi się na czarnym tle mojego terminalu
Tom Busby
5
W rzeczywistości jest problem, część kolorowego tekstu jest czarna! Jeśli nasze tło terminala jest czarne, te słowa są niewidoczne!
dukevin
8
Masz martwy link
not2qubit
52

Użyłem tego polecenia, aby szybko włączyć wszystkie dostępne języki.

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

Jak wspomniano w innych odpowiedziach, /usr/share/nano/zawiera definicje różnych języków.

$ 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

Wspomniano również, aby włączyć wyróżnianie dla języka, dodajesz includei ścieżkę do definicji języka, którą chcesz włączyć do swojego ~/.nanorcpliku. Na przykład, aby włączyć C / C ++, należy dodać tę linię.

include /usr/share/nano/c.nanorc

Do findwyszukiwania poleceń dla plików lub katalogów w określonym katalogu.

  • -inameFlaga informuje go tylko poszukać plików z nazwą, która kończy się .nanorc.
  • Te -execflagi określa polecenie do wykonania na każdym pliku znaleziony.
  • Zostanie {}zastąpiony nazwą pliku.
  • \;służy do oznaczenia końca polecenia wykonania findpolecenia.
  • Wreszcie >> ~/.nanorcpowoduje dołączenie danych wyjściowych do ~/.nanorcpliku.
Drew Chapin
źródło
świetna wskazówka i wyjaśnienie, wielkie dzięki człowieku! ;)
daveoncode
Dzięki i nie wygląda na to, że potrzebujesz flagi iname. Wygląda na to, że działają również: find /usr/share/nano/*.nanorc
Milind
Thansk bardzo!
VIX
7

Powinno to obejmować wszystkie wtyczki podświetlania składni zawarte domyślnie oraz wszystkie dodane do / usr / share / nano:

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

Lub edytuj plik / etc / nanorc i sprawdź, czy możesz odkomentować dołączenia.

Działa to, jeśli masz wersję nano, która nie akceptuje symboli wieloznacznych w pliku .nanorc.

Po prostu uruchom tę linię za każdym razem, gdy dodasz dodatkową konfigurację kolorów .nanorc.

NotoriousPyro
źródło
2

Mam trochę podświetlania składni nano w moim github .

Istnieją przykładowe zrzuty ekranu dla HTML i PHP:

wprowadź opis zdjęcia tutaj

i

wprowadź opis zdjęcia tutaj

Eric Leschinski
źródło
2

Możesz użyć tego, aby uwzględnić wszystkie: (dodaj to do pliku ~ / nanorc)

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

Miłego kodowania!

Norbert Mezei
źródło
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
użytkownik170859
źródło
22
Przydałoby się wyjaśnienie, dlaczego jest to przydatna odpowiedź dla nowych użytkowników. Co robi polecenie? Co to zmienia Losowe sugerowanie uruchomienia wiersza polecenia nie jest pomocne.
Kevin Bowen
1

Najbardziej kompletne i hilighters termin składnia dla nano utrzymywane są tutaj .

Aby zainstalować wszystkie zakreślacze dla swojego użytkownika, po prostu uruchom:

cd /tmp
git clone https://github.com/tech4david/nano-highlight.git
cd nano-highlight/
make install
echo "include ~/.nano/syntax/ALL.nanorc" >> ~/.nanorc
Raveren
źródło
Rozwiązanie jest dobre, ale chciałbym użyć innego folderu git clone. Zawartość /tmpfolderu będzie usuwana przy każdym uruchomieniu systemu, dlatego nigdy nie można było uruchomić git pull.
AB
Twój tag języka jest nieprawidłowy. jsnie jest bashlub shell-scriptumieściłem link za tym słowem here. Gdzie jest problem?
AB
1
@AB to nie ma znaczenia, czy to folder jest już od kiedy make installwszystkie pliki składniowe są kopiowane do bezpiecznym miejscu, do której należą: ~/.nano/syntax.
Pablo A
1

Dla tych, którzy mają problemy po wykonaniu powyższych instrukcji, sprawdź również, czy masz zduplikowane definicje . Spowoduje to wyłączenie podświetlania składni dla wszystkich plików . Natknąłem się na to po dodaniu nanorc.nanorcpliku i nie zdając sobie sprawy, że miałem ~/.nanorcjuż identyczną sekcję, tj .:

## 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
źródło
0

Znalazłem podświetlanie składni dla js tutaj .

Dołączyłem go do mojego pliku użytkownika pod adresem ~/.nanorc

Jednak, aby uzyskać plik, do którego mógłbym dołączyć, musiałem najpierw skopiować z /usr/share/nano/nanorc.nanorcmojego folderu lokalnego jako ~/.nanorc.

Forrest Erickson
źródło
0

Przypadkowo wyłączyłem podświetlanie za pomocą skrótu klawiaturowego Alt+ Y. Można go ponownie włączyć za pomocą tego samego skrótu klawiaturowego.

Thomas Weller
źródło
0

Wiem, że to stary wątek, ale może moje rozwiązanie może pomóc

edytuj plik w / etc / nanorc

Z linii 243 można znaleźć pliki zawierające wiele partii. Po prostu odkomentuj te, których potrzebujesz, zapisz i gotowe.

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

Nie jestem pewien, czy jeśli zaktualizujesz nano, zmiany te znikną.

László Péter Varga
źródło
-1

Właśnie napisałem ten skrypt, aby dodać kolory do nano: Ale oczywiście musisz mieć kody kolorów w / usr / share / nano, aby to zadziałało. Jeśli występują błędy: po prostu ręcznie edytuj plik ~ / .nanorc i usuń linie, które powodują błędy.

#!/bin/bash

for i in `ls /usr/share/nano`
  do
    echo "include /usr/share/nano/$i" >> ~/.nanorc
  done
some_random_guy
źródło