Poniżej jedna wkładka tworzy plik HTML o nazwie email.html
:
diff file1 file2 | vim - +TOhtml '+w email.html' '+qall!'
można teraz używać kodu Pekka do wysyłania wiadomości e-mail.
Jednak pod numerem wierzę w zastosowanie odpowiedniego narzędzia do właściwej pracy - i VIM może nie być właściwym narzędziem. Inne wyróżniki istnieją, a ich użycie jest bardziej odpowiednie tutaj.
Na przykład Pygments można wykorzystać do produkcji tego samego rezultatu, bardziej efektywnie i bezproblemowy:
diff -u report.log .report.log | pygmentize -l diff -f html > email.html
Zauważ, że ten produkuje tylko rzeczywista ciała tekst, a nie arkusza stylów, ani otaczające szkielety HTML. To trzeba dodać osobno, ale to też nie jest trudne. Oto pełna skrypt bash przedstawienia ważnego minimalny plik HTML:
echo '<!DOCTYPE html><html><head><title>No title</title><style>' > email.html
pygmentize -S default -f html >> email.html
echo '</style></head><body>' >> email.html
diff -u report.log .report.log | pygmentize -l diff -f html >> email.html
echo '</body></html>' >> email.html
EDIT w przypadku, gdy kod Pekka nie wyszło - jak dla mnie - bo nie ma wymaganych wersje mail
i mutt
zainstalowana, można korzystać sendmail
następująco wysłać wiadomość e-mail w formacie HTML:
(echo 'To: [email protected]'
echo 'Content-Type: text/html'
echo 'Subject: test'
echo ''
cat email.html) | sendmail -t
ważne jest, aby pozostawić pustą linię między nagłówka i treści wiadomości. Zauważ też, że utworzenie pliku tymczasowego jest oczywiście niepotrzebne. Po prostu wklej pozostałe polecenia we właściwe miejsce powyżej i usuń przekierowania do pliku.
masz interesującą definicję "bardziej wydajnie i bezproblemowo". +1, w jaki sposób zachęcić vima do pisania i zamykania z poziomu wiersza poleceń. – rampion
można zmienić "+ w email.html" na '+%! Mutt' lub cokolwiek innego, aby vim wywoływał polecenie mail bezpośrednio – rampion
@rampion: Uruchomienie Vima w ten sposób jest dość nieefektywne. Pygments z łatwością go przewyższają.Przez bezproblemowy po prostu mam na myśli to, że przepływ pracy w Pygments jest konceptualnie łatwiejszy ("syntax-highlight diff", w przeciwieństwie do "otwarcia diff w edytorze, uruchomienia polecenia, zamykania edytora"), mimo że jest to więcej tekstu pisać. Obie metody mają swoje zalety, jak sądzę. –