Używanie vima jako filtra do pokolorowania danych wyjściowych z wiersza poleceń


4

Uwielbiam podświetlanie składni vima. Szczególnie dobrze radzi sobie na zunifikowanych różnicach, więc używam go bardzo często w ten sposób:

diff -pu old new | vim -

Zdaję sobie sprawę z jednej wskazówki, by używać vima jako mniejszej , ale tak naprawdę chcę sposobu, aby po prostu wyprowadzać kolorowe wydruki (bez stronicowania). Jestem pewien, że da się to zrobić, ale jak?

Odpowiedzi:


5

Jeśli chcesz otrzymać wyjście ANSI, nie wiem, jak to osiągnąć, ale Vim ma polecenie: TOhtml, którego używałem w jednym z moich plików Makefile (tutaj uproszczonym):

vim -gf --noplugin -c 'if has("gui_running") | stop | endif' \
    -c 'runtime syntax/2html.vim' \
    -c 'w foo.html' -c 'qa!' foo

Pierwszy wiersz, w którym działa „ stop”, jeśli GUI działa, nie zatrzymuje gVim, tylko go minimalizuje. Drugi wiersz z poleceniem „ runtime” jest w zasadzie tym, co robi: TOhtml - już nie pamiętam, dlaczego zdecydowałem się to zrobić zamiast używać: TOhtml. Trzeci wiersz zapisuje „ foo.html” i kończy pracę, a także zawiera oryginalny plik w wierszu polecenia, którym foow tym przypadku jest „ ”, a -zamiast tego można go zmienić na .


+ dla ciebie skrypt. To niesamowite
c0rp

1
Komentarz do „Nie pamiętam już, dlaczego zdecydowałem się to zrobić zamiast używać: TOhtml”, być może nie chciałeś ładować wszystkich wtyczek. Jeśli użyjesz TOhtmlzamiast tego musisz usunąć --noplugin.
244an

@ 244an: Masz rację. To prawie na pewno powód.
Heptyt

3

Niestety nie mogę skomentować pytania, dlatego piszę odpowiedź i mam nadzieję, że bardziej uprzywilejowany użytkownik przekształci mój wpis w komentarz.

Aby użyć diff, możesz także spróbować czegoś takiego:

svn diff |colordiff

colordiff wykonuje świetną robotę, kolorując wyjście diff, może spróbujesz tego w tej konkretnej sytuacji. W przeciwnym razie odpowiedź Heptite to prawidłowe podejście.

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.