VIM电子邮件的内容,我想查看我很喜欢工作与命令的源文件的当前差异:是否可以使用HTML
vim <(svn diff -dub)
我真的很想成为能够做的就是通过电子邮件发送彩色差异。我知道Vim可以使用:TOhtml导出HTML,但是如何将此输出传输到HTML电子邮件中?理想的情况下。我希望能够通过一个shell脚本命令发送html diff。
VIM电子邮件的内容,我想查看我很喜欢工作与命令的源文件的当前差异:是否可以使用HTML
vim <(svn diff -dub)
我真的很想成为能够做的就是通过电子邮件发送彩色差异。我知道Vim可以使用:TOhtml导出HTML,但是如何将此输出传输到HTML电子邮件中?理想的情况下。我希望能够通过一个shell脚本命令发送html diff。
下面的一行代码产生一个名为email.html
一个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脚手架。这必须单独添加,但这也不难。下面是一个完整的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
编辑在情况下佩卡的代码没有工作 - 为我 - 因为你没有的mail
和mutt
所需版本安装那么你可以使用sendmail
如下发送HTML邮件:
(echo 'To: [email protected]'
echo 'Content-Type: text/html'
echo 'Subject: test'
echo ''
cat email.html) | sendmail -t
它留下头部和电子邮件的正文之间的空行是非常重要的。另外请注意,创建临时文件email.html
当然是不必要的。只需将其余的命令粘贴到上面的正确位置,并将重定向删除到文件。
我没有Linux的大师,但是这看起来应该你的输出满足您的需求,以管为:
Send an HTML file as email from the command line.(使用mail
)
还有一个单行mutt
例如here:
mutt -e "my_hdr Content-Type: text/html"
-s "my subject" [email protected] < message.html
这将生成一个纯粹的HTML电子邮件没有纯文本替代 - 为此,你将不得不建立多部分邮件......但也许它会做你需要的。
小心解释downvote?这里有什么技术上的错误吗? – 2010-04-01 14:27:44
你有一个有趣的“更有效和无忧”的定义。如何让vim从命令行写入和退出+1。 – rampion 2010-04-01 15:13:37
您可以将“+ w email.html”更改为“+%!mutt”或任何可以让vim直接调用邮件命令的地方 – rampion 2010-04-01 15:15:38
@rampion:以这种方式启动Vim实际上效率很低。 Pygments很容易胜过它。无忧无虑,我的意思是Pygments的工作流程在概念上更容易(“语法 - 突出差异”,而不是“在编辑器中打开差异,运行命令,关闭编辑器”),即使它是更多的文本写。两种方法都有我认为的优点。 – 2010-04-01 15:28:38