Wiele edytorów programistycznych pokoloruje kod źródłowy. Czy istnieje polecenie, które pokoloruje kod źródłowy do przeglądania w terminalu?
Mogę otworzyć plik emacs -nw
(który otwiera się w terminalu, a nie pojawiały się w nowym oknie), ale szukam czegoś, co działa podobnie less
(lub prace z less -R
, która przechodzi przez sekwencje kolorów ewakuacyjnych w wejściu).
źródło
GNU używać
source-highlight
w połączeniu zless -R
tego. Dodaj następujące wiersze do pliku inicjalizacji powłoki (~/.bashrc
na przykład):Powinno to automatycznie pokolorować kod źródłowy zgodnie z użytym językiem, a jeśli nie, uruchomi się
less
na jego wejściu bezpośrednio.źródło
Jeśli interesują Cię kolory
less
bardziej ogólnie, możesz rzucić okiemlesspipe.sh
. Zobacz na przykład http://freecode.com/projects/lesspipe .Pokoloruje również skrypty powłoki, skrypty Perla itp. Podobnie jak edytor tekstowy, ale bez użycia programu do wstępnego przetwarzania do pokolorowania.
źródło
lesspipe.sh
to właśnie próbowałem zapamiętać, zanim opublikowałem pytanie ...Lubię prostotę i używam nano edytora tekstu, w tym przypadku zwykle postępuję następująco:
sprawdź, czy podświetlona składnia jest dostępna:
ls -la /usr/share/nano/
dołącz to do mojego pliku nanorc za pomocą następującego polecenia lub wykonując to ręcznie
o
less
Sugeruję zajrzeć na tę stronęźródło
Zgodnie z sugestią Stéphane'a Chazelasa , wykonuję funkcję bash, aby użyć
highlight
podświetlenia show Syntax, umieścić go w .bashrc lub tak dalej. Działa świetnie, szybko i skutecznie.obsługa podświetlania Format składni języka 202 . zob
highlight --list-scripts=langs
.źródło
Możesz użyć pakietu e2ansi , który zapewnia obsługę podświetlania składni dla pagerów takich jak
more
iless
.Pakiet wykorzystuje matkę wszystkich edytorów tekstu, Emacsa , do faktycznego podświetlania składni. Jako dodatkowy bonus, wykonywane są również wszystkie inne konwersje normalnie wykonywane przez Emacsa - takie jak rozpakowywanie plików.
Przykład
Poniżej przedstawiono wynik przeglądania pliku przy użyciu
less
ie2ansi
:Konfiguracja
Pakiet zawiera narzędzie wiersza polecenia,
e2ansi-cat
które uruchamia Emacsa w trybie wsadowym, otwiera pliki, wyróżnia ich składnię i renderuje wynik przy użyciu sekwencji ANSI.Możesz to zintegrować
less
, ustawiając na przykład następujące zmienne na (położenie pliku init może się różnić):W powyższej konfiguracji
less
przywraca oryginalną zawartość okna terminala, amore
po wyświetleniu monitu wypisuje nową zawartość.Uwaga: jeśli używasz starej wersji
less
, może ona nie obsługiwać składni||
lub-
, w takim przypadku może być konieczne użycie po prostuLESSOPEN=|/usr/local/emacs ...
.Zastosowanie
less
w rurachZnak „-” w
LESSOPEN
oznacza, że filtr wejściowy powinien być również używany podczas przesyłania tekstu do niegoless
. W takim przypadku Emacs może polegać tylko na samym tekście (a nie na nazwie pliku). Na szczęście Emacs zapewnia do tego system. Ponadto podany plik plikue2ansi-magic.el
konfiguruje dodatkowe typy plików. Na przykład:Dlaczego warto korzystać z Emacsa?
e2ansi
kolory w kompozycji są zachowywane podczas przeglądania pliku wless
. Możesz wybrać odpowiedni motyw kolorystyczny z wielu źródeł lub zaprojektować własny.less
(minus ograniczenia w formacie sekwencji ANSI i oknie terminala).less
skorzysta z funkcji Emacsa, które wykonują automatyczną konwersję, na przykład rozpakowywanie plików. W rzeczywistości możesz nauczyć Emacsa przeprowadzania wszelkiego rodzaju konwersji, takich jak automatyczna konwersja pliku binarnego do postaci czytelnej dla człowieka za pomocą zewnętrznego narzędzia./USER@HOST:FILENAME
.Przydatne linki
e2ansi
jest dystrybuowany na Melpa i może być zainstalowany przy użyciu standardowego systemu pakietów Emacsae2ansi
jest hostowany na GitHube2ansi
Stronę na Emacs Wikiless
.Uwagi dotyczące systemu operacyjnego
W systemie MS Windows konsola nie obsługuje natywnie sekwencji ANSI. Na szczęście
less
aplikacja jest w stanie je renderować. Nie znam żadnej współczesnej dystrybucji binarnejless
dla MS Windows, a dostarczone pliki kompilacji są trudne w użyciu. Na szczęście jest łatwy do zbudowanialess
przy użyciu CMake , zobacz ten tekst, aby uzyskać szczegółowe informacje.OS X rozpowszechnia starą wersję
less
. Na szczęście łatwo jest zbudować nowoczesną wersję bezpośrednio ze źródła.źródło
Nazywa się to podświetlaniem składni.
Podświetlenie źródła GNU po otrzymaniu pliku źródłowego tworzy dokument z podświetlaniem składni.
Korzystam ze
lessfilter
skryptu poniżej lub możeszless
wywołać go automatycznie tak jak w przypadku:Znalazłem ten artykuł i zacząłem robić to w ten sposób:
(
src-hilite-lesspipe.sh
jest dostarczany z,source-highlight
ale nie wszystkie dystrybucje go obejmują)źródło
export
definiuje zmienną środowiskową, a nie alias. Komendaless
używa flagi ze zmiennej środowiskowejLESS
, więc odpowiedź wymaga jeszcze trochę pracy.