使用语法突出显示将差异输出粘贴到Microsoft Outlook中

时间:2009-05-08 23:55:41

标签: outlook diff paste

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

我要么将diff输出管道传输到一个程序,该程序会将其复制到带格式化的剪贴板(p4 diff file.cpp | rtfpatch),或者有一个Outlook插件可以让我选择一些文本,点击一个按钮,然后它变色。

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

5 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

需要python。

答案 2 :(得分:0)

许多编辑人员都可以将以语法突出显示的文件导出为HTML。从那里,您可以将HTML粘贴到Outlook中。例如,要在Vim中将文件导出为HTML,请使用:TOhtml

This Visual Studio addon也提供“导出到HTML”功能。值得一试。

答案 3 :(得分:0)

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

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

p4v custom tool定义(将此内容写入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。

答案 4 :(得分:0)

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

另一种方法是使用批处理文件将其编写脚本并将Message html主体设置为等于您的html文本并发送。有很多通过stackoverflow上的脚本发送电子邮件的例子。根据您安装的内容等,有很多方法可以做到这一点
Send mail from a Windows script
使用CDO