Следующая один вкладыш создает файл HTML с именем email.html
:
diff file1 file2 | vim - +TOhtml '+w email.html' '+qall!'
Теперь вы можете использовать код Пекка для отправки по электронной почте.
Однако, я верю в использование правильного инструмента для правильной работы - и VIM может быть не лучшим инструментом здесь. Существуют другие маркеры, и их использование здесь более уместно.
Например, Pygments могут быть использованы гораздо более эффективно производить тот же результат, и без проблем:
diff -u report.log .report.log | pygmentize -l diff -f html > email.html
Обратите внимание, что это производит только фактический текст тела, а не таблицы стилей, ни окружающий HTML-эшафот. Это нужно добавить отдельно, но это не сложно. Вот полный Баш скрипт для получения действительного минимального 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 В случае, если код Пекка не работал - а для меня - потому что у вас нет необходимых версий mail
и mutt
установлен, то вы можете использовать sendmail
следующим образом отправить HTML электронной почты:
(echo 'To: [email protected]'
echo 'Content-Type: text/html'
echo 'Subject: test'
echo ''
cat email.html) | sendmail -t
Очень важно, чтобы оставить пустую строку между заголовком и телом сообщения электронной почты. Также обратите внимание, что, конечно, не нужно создавать временный файл email.html
. Просто вставьте остальные команды в нужное место выше и удалите перенаправления в файл.
у вас есть интересное определение «более эффективно и без проблем». +1 для получения vim для записи и выхода из командной строки. – rampion
вы можете изменить «+ w email.html» на '+%! Mutt' или что угодно, чтобы vim вызывал команду mail напрямую – rampion
@rampion: запуск Vim таким образом на самом деле довольно неэффективен. Пигменты легко превзошли его.Без проблем я просто имею в виду, что рабочий поток Pyigs концептуально проще («синтаксис - выделить diff», в отличие от «открыть diff в редакторе, запустить команду, закрыть редактор»), даже если это больше текста для написать. Думаю, оба метода имеют свои достоинства. –