gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 14:50:15 25 4
gpt4 key购买 nike

我喜欢使用如下命令查看我正在处理的源文件中的当前差异:

vim <(svn diff -dub)

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

最佳答案

以下单行代码生成一个名为 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 脚手架。这必须单独添加,但这也不难。这是生成有效的最小 HTML 文件的完整 bash 脚本:

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 的代码不起作用——对我来说——因为你没有所需版本的 mailmutt 安装后就可以使用 sendmail 发送 HTML 邮件了:

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

在邮件的标题和正文之间留一个空行很重要。另请注意,创建临时文件 email.html 当然是不必要的。只需将其余命令粘贴到上面的正确位置并删除重定向到文件。

关于html - 是否可以使用 HTML 通过电子邮件发送 vim 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2561040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com