微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以使用HTML通过电子邮件发送vim的内容

我喜欢用以下命令来查看我正在处理的源文件中的当前差异:
vim <(svn diff -dub)

我真正希望能够通过电子邮件发送彩色差异.我知道vim可以使用:TOhtml导出HTML,但是如何将此输出转换为html电子邮件?理想的情况下.我希望能够使用单个shell脚本命令发送html diff.

解决方法

以下单行生成名为email.html的HTML文件
diff file1 file2 | vim - +TOhtml '+w email.html' '+qall!'

您现在可以使用Pekka的代码发送电子邮件.

但是,我相信使用正确的工具来做正确的工作 – 而VIM可能不是正确的工具.其他荧光笔存在,它们的使用在这里更合适.

例如,可以利用Pygments来产生相同的结果,更加高效和轻松:

diff -u report.log .report.log | pygmentize -l diff -f html > email.html

请注意,这只生成实际的文本正文,而不是样式表,也不会生成周围的HTML支架.这必须单独添加,但这也不困难.这是一个完整的bash脚本,用于生成有效的最小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

编辑如果Pekka的代码不起作用 – 对我来说 – 因为你没有安装所需的mail和mutt版本,那么你可以使用sendmail发送HTML电子邮件

( echo 'To: email-address@example.com'
  echo 'Content-Type: text/html'
  echo 'Subject: test'
  echo ''
  cat email.html ) | sendmail -t

标题和电子邮件正文之间留一个空行非常重要.另外,请注意,创建临时文件email.html当然没有必要.只需将其余命令粘贴到上面的正确位置,然后删除重定向文件.

原文地址:https://www.jb51.cc/html/242689.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐