2009-05-08 80 views
1

如何將差異輸出(diff old-version.cpp new-version.cpp)複製到Outlook電子郵件中,以便我可以將它發送給其他人,其語法突出顯示通過語法高亮顯示將差異輸出粘貼到Microsoft Outlook中

我想要將差分輸出傳輸到一個程序,該程序會將其複製到剪貼板並進行格式化(p4 diff file.cpp | rtfpatch),或者爲Outlook提供一個插件,讓我選擇一些文本,單擊按鈕並將其着色。

我使用Windows(XP和Vista),Perforce,Visual Studio,Beyond Compare 3,Outlook 2007.使用這些工具組合的任何東西都會很好(我不想改變我的主要差異程序等等。 ..)。

回答

2

您可以在會話菜單中使用超越比較的「文本比較報告」命令來做到這一點。使用「Interleaved」佈局樣式,「HTML報告」輸出樣式和「複製到剪貼板」命令,並將其作爲彩色HTML複製到剪貼板。我沒有Outlook來測試,但它肯定會將其粘貼到Word中。

+0

這真的很好!交錯輸出不是最容易閱讀的。特別是如果你沒有一個寬屏幕(並且有很長的代碼行:(但是它可以工作並且還有其他選項。太糟糕了,沒有一個補丁報告佈局具有顏色。 – idbrii 2009-06-27 01:39:51

0

許多編輯器都能夠將語法高亮文件導出爲HTML。從那裏,您可以將HTML粘貼到Outlook中。例如,要在Vim中將文件導出爲HTML,請使用:TOhtml

This Visual Studio addon也提供了「導出到HTML」功能。值得一試。

+0

還有一個問題[1]有類似的答案,但我希望能更容易些。 此外,我嘗試使用像你描述的Vim,但是當我將它粘貼到Outlook(發送格式設置爲HTML)時,它粘貼爲HTML代碼。當我將它發送給自己時,它仍然是html代碼。 [1]:http://stackoverflow.com/questions/225830/syntax-highlighting-when-pasting-into-emails – idbrii 2009-05-09 00:24:49

+0

您是否嘗試在瀏覽器中打開HTML代碼,複製diff並將其粘貼到Outlook中? – 2009-05-09 00:26:04

+0

通過一些工作,這可能是最好的解決方案。你可以創建一個腳本來將一個diff複製到剪貼板:output diff,在vim中加載它,使用':TOhtml'將其轉換爲html,將它傳遞給剪貼板上的內容,而不是HTML代碼)。 'xclip -t text/html'會在Linux上做最後一部分,所以也許它可以在cygwin下運行。 – idbrii 2015-05-09 14:42:13

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。

+0

您能否詳細解釋您是如何實現上述目標的。我有一個perforce更改列表,我希望對其進行審查,並在添加和刪除的情況下輸出顏色會很有幫助。 – noobcode 2015-05-05 11:02:13

+0

我不確定perforce是否仍提供p4diff.exe,但我已經將上述步驟更加明確。我已經知道默認差異可以採用統一差異的'-u'(可能需要'設置P4DIFF ='使用默認值),但我不知道'p4 diff -u'是否會給語法着色。 – idbrii 2015-05-09 14:12:59

0

要將html粘貼到outlook中,您應該嘗試將其粘貼到msg的源代碼中。 右鍵單擊HTML消息的正文並選擇查看源代碼,然後通過您的html進入該源代碼。

另一種方法是在批處理文件中使用腳本並將Message html正文設置爲等於您的html文本併發送。在stackoverflow上有很多通過腳本發送電子郵件的例子。還有根據你所安裝的等一個例子的多種方式做到這一點是
Send mail from a Windows script
使用CDO

1

我發現的另一個體面的解決方案是一個vim插件。 cliphtml.vim爲您提供:ClipHtml ex命令,該命令將使用vim的高亮顯示將整個文件或選定區域複製到剪貼板。

需要python。