syntax_highlight <plik_źródłowy> | lpr


10

Czy ktoś wie o prostym sposobie tworzenia PostScript odpowiadającego podświetlonej składni wersji pliku źródłowego, który można podłączyć bezpośrednio do drukarki PostScript?

Jak sugeruje sformułowanie powyższego pytania, szukam czegoś, co mogę uruchomić z wiersza poleceń. Myślę o interakcji takiej jak:

% syntax_highlight <SOURCE_FILE> | lp

... w razie potrzeby z przełącznikami wiersza poleceń itp.

Najlepsze, jakie do tej pory znalazłem, to narzędzie uniksowe o nazwie highlight, ale ma ono problemy. Najpoważniejsze jest to, że nie ma opcji bezpośredniego wyświetlania PostScript. (Ponieważ highlightobsługuje dane wyjściowe LaTeX, próbowałem załatać skrypt, który zautomatyzowałby proces generowania pliku PostScript za pomocą * .tex => * .dvi => * .ps, ale wygląd końcowy jest okropny, znacznie gorzej niż w przypadku pliku HTML, który highlightgeneruje dla tego samego kodu źródłowego).

Dzięki!

Odpowiedzi:


13

Możesz użyć vima.

vim -c hardcopy -c quit /path/to/file

Spowoduje to wydrukowanie pliku i natychmiastowe wyjście. Domyślnie vim drukuje z podświetlaniem składni.

Jeśli chcesz drukować ze standardowego polecenia, możesz to zrobić:

cat some_file.c | vim -c hardcopy -c 'quit!' -

Jeśli chcesz zapisać plik .ps na później, możesz to zrobić, dodając przekierowanie do polecenia wydruku:

vim -c 'hardcopy > /path/to/saved.ps' -c 'quit' /path/to/file

Vim pozwala ustawić wiele opcji związanych z drukowaniem, więc możesz chcieć przejrzeć dokumentację, jeśli chcesz ją ulepszyć. Oczywiście istnieje również wiele opcji podświetlania składni .


5

Istnieje kilka programów, które ładnie drukują różne języki programowania na Postscript, które nie wymagają do działania żadnego oprogramowania innych firm:

Jeśli chcesz przejść przez LaTeX, masz więcej opcji. Przejście przez LaTeX jest szczególnie przydatne, jeśli chcesz zawrzeć kod i coś innego w tym samym dokumencie; w przeciwnym razie jest to przesada.


3

W Gedit, standardowym edytorze gnome, możesz drukować do pliku, wybrać Postscript (domyślny PDF) i zaznaczyć na trzeciej karcie, aby użyć podświetlania, które jest domyślnie wyłączone, co tworzy dla mnie ładny plik ps.

A Gedit ma wiele plików składniowych, aby obsłużyć wiele języków programowania, HTML, SQL, XML, pliki rc, nazwij to.


To działa, z wyjątkiem tego, że dla mnie (gedit 3.10.4 na Ubuntu 14.04.4) wygenerowany plik PDF jest w skali szarości, a nie w kolorze. Bezpośrednie drukowanie również powoduje powstanie skali szarości.
MarnixKlooster ReinstateMonica

0

Rozwijając odpowiedź Shawna J. Goffa:

Możesz użyć następującego wiersza polecenia vim do utworzenia pliku .ps z poziomu vima:

:hardcopy > %.ps

Jeśli wolisz plik .pdf, możesz:

:hardcopy > %.ps | !ps2pdf %.ps && rm %.ps

Uwaga:

  • %Jest skrótem dla bieżącego pliku, więc HelloWorld.Cbędzie drukować HelloWorld.C.pslubHelloWorld.C.pdf

Ponadto, aby zmienić renderowaną czcionkę, ustaw drukarkę przed wykonaniem polecenia wydruku. Na przykład, aby wybrać Kuriera 8:

:set printerfont=Courier:h8

Podsumowując, zdecydowałem się umieścić następujące elementy w moim pliku .vimrc, aby móc po prostu wykonać polecenie :HardcopyPslub :HardcopyPdf(które może również działać na wybranym zakresie w pliku):

set printfont=Courier:h8 "select the font to use when printing
command! -range=% HardcopyPs <line1>,<line2> hardcopy > %.ps && echo 'Created: %.ps'
command! -range=% HardcopyPdf <line1>,<line2> hardcopy > %.ps | !ps2pdf %.ps && rm %.ps && echo 'Created: %.pdf'
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.