1

如何将差异输出 () 复制到 Outlook 电子邮件中,以便可以通过语法突出显示diff old-version.cpp new-version.cpp将其发送给其他人?

我想将差异输出通过管道传输到一个程序,该程序将使用格式(p4 diff file.cpp | rtfpatch)将其复制到剪贴板,或者有一个 Outlook 插件,可以让我选择一些文本,单击一个按钮,然后它会被着色。

我使用 Windows(XP 和 Vista)、Perforce、Visual Studio、Beyond Compare 3、Outlook 2007。任何使用这些工具组合的东西都可以很好地工作(我不想改变我的主要差异程序等)。

4

5 回答 5

2

您可以在会话菜单中使用 Beyond Compare 的“文本比较报告”命令来执行此操作。使用“交错”布局样式、“HTML 报告”输出样式和“复制到剪贴板”命令,它会将其作为彩色 HTML 复制到剪贴板。我没有 Outlook 进行测试,但它确实可以将其粘贴到 Word 中。

于 2009-05-10T02:50:25.250 回答
1

我发现的另一个不错的解决方案是 vim 插件。cliphtml.vim为您提供:ClipHtmlex 命令,它将整个文件或选定区域复制到剪贴板,并带有 vim 的突出显示。

需要蟒蛇。

于 2010-05-28T17:53:14.373 回答
0

许多编辑器能够将语法高亮文件导出为 HTML。从那里,您可以将 HTML 粘贴到 Outlook 中。例如,要在 Vim 中将文件导出为 HTML,请使用:TOhtml.

这个 Visual Studio 插件也提供“导出到 HTML”功能。值得一试。

于 2009-05-09T00:03:43.850 回答
0

我想出了一个解决方案来制作一个使用 p4diff.exe 程序从 Perforce 中区分文件的批处理文件。

它的问题是 p4diff 输出整个文件,而不仅仅是更改的部分(我也更喜欢统一差异)。此外,区分特定版本需要从命令行调用 rtfdiff(自定义工具仅针对 HEAD 进行区分)。

p4v 自定义工具定义(将其写入 tool.xml,然后将其导入 p4v 的管理自定义工具菜单):

<CustomToolDef>
  <Definition>
    <Name>RTF Diff</Name>
    <Command>c:\scripts\rtfdiff.bat</Command>
    <Arguments>%f</Arguments>
  </Definition>
  <AddToContext>true</AddToContext>
</CustomToolDef>

rtfdiff.bat 在哪里

:: Use p4diff to get copy-pasteable diff output.

:: setlocal so we use the default after script terminates
setlocal
set P4DIFF=c:\Perforce\p4diff.exe
:: Diff all inputs to allow multiple revisions (must be in increasing order)
p4 diff %*

这将允许您右键单击文件并选择“RTF Diff”或通过命令行 ( rtfdiff.bat file.txt#1 file.txt#2) 调用 rtfdiff.bat。

于 2009-05-09T00:16:21.637 回答
0

要将 html 粘贴到 Outlook 中,您应该尝试将其粘贴到 msg 的源中。右键单击 HTML 消息的正文并选择查看源,然后将您的 html 粘贴到其中。

另一种方法是在批处理文件中编写脚本,并将 Message html body 设置为等于您的 html 文本并发送。在 stackoverflow 上有很多通过脚本发送电子邮件的示例。有多种方法可以做到这一点,具体取决于您安装的内容等。一个示例是 使用 CDO
从 Windows 脚本发送邮件

于 2009-05-09T10:02:37.437 回答