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.


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.


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.


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.

ś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.



2

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

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

Miłego kodowania!


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

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

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.


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.


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ą.


-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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.