題:
基於控制台的文件比較/差異工具
Ken Herbert
2014-05-21 05:17:26 UTC
view on stackexchange narkive permalink

我正在尋找可以在Ubuntu服務器上安裝的東西,這將使我能夠以比默認 diff更直觀,更易理解的方式比較PHP,Javascript,CSS,HTML和其他純文本文件的內容。 命令。

必須具有

  • 文件內容的並排比較,以指示從文件1到文件1的行不同文件2
  • 從控制台運行(未安裝桌面環境)
  • 支持純文本文件

希望擁有

  • 用於突出顯示更改的顏色
  • 同步滾動(當您進行比較時,兩個文件的行並排並處於查看狀態)
  • 指示一行中的更改(例如,將“一個問題”與“這是一個問題”行進行比較,將表明/突出顯示“這是”是區別,而不是僅將整行表示為具有

最理想的是,我會喜歡WinMerge的文件比較功能:用於Ubuntu的WinMerge

,但我知道並非僅控制台應用程序可能具備所有功能。

相關:[像OS X的Opendiff一樣適用於Ubuntu的Difftool](http://superuser.com/q/22360/2357)
三 答案:
Cristian Ciupitu
2014-05-21 08:31:03 UTC
view on stackexchange narkive permalink

vimdiff

  vimdiff file1 file2  

您也可以將其與git一起使用,例如:

  git difftool --tool = vimdiff HEAD ^ HEAD  

vimdiff

Gilles 'SO- stop being evil'
2014-05-21 10:57:28 UTC
view on stackexchange narkive permalink

因此,您需要一個具有非常基本功能的交互式差異工具。顯而易見的答案是 Emacs(Ubuntu: emacs ),其中包括大約20年前的 Ediff

打開要比較的兩個文件,然後在菜單中選擇“工具→比較(Ediff)→兩個緩衝區…”。或選擇“工具→比較(Ediff)→兩個文件…”,然後輸入文件名。您可以使用命令 ediff-buffers ediff ediff-files 的別名)代替(按 Alt kbd> + X kbd>,然後鍵入 ediff ,然後按 Enter kbd>)。 Ediff模式下的主要命令是:

  • | 在兩個文件之間一個顯示另一個(默認)或併排顯示
  • n 移至下一個不同的線段
  • p 移至上一個不同的線段
  • q 退出Ediff模式
  • 尋求幫助
  • Cx o Ctrl + X kbd>,然後用小寫的 O kbd>)在三個緩衝區(文件1,文件2和Ediff控制面板)之間導航。

如果您有一個共同的祖先文件,Ediff也可以進行三向比較,並且可以幫助進行合併。 “工具”菜單中的條目應足以使您入門;有關詳細信息,請參見手冊

Emacs還可以自動從svn和其他版本控制系統中提取修訂。在“工具→版本控制”菜單下或手冊中查看更多信息。

使用Emacs的GUI版本可能會更舒適。 Emacs可在所有主要操作系統上運行(在Windows上,我使用 EmacsW32),並且可以通過SSH(和其他方法)透明地訪問遠程文件。要通過SSH打開遠程文件,請輸入 /主機名:/ path / to / file 作為文件名。在Windows下,如果您使用的是PuTTY for SSH,請確保在Emacs的 PATH 上安裝 plink ,然後將(setq tramp-default-method“ plink“)在您的〜/ .emacs 中。有關更多詳細信息,請參見 Tramp手冊。

Elliot Reed
2014-06-17 14:47:21 UTC
view on stackexchange narkive permalink

如果您喜歡 diff ,但希望它更易於理解和閱讀,則可以使用 colordiff -與 diff 基本相同,但

要使用diff或colordiff進行並排比較,可以添加 -y 選項。您還可以使用 sdiff -通過 -y 選項,它輸出的並排比較比 diff 乾淨一些(在Fedora上為至少,在Debian上,它們看起來幾乎相同,雖然不確定每個人是否都相同)。

它突出顯示了不同的單詞,而不是整行。

您還可以設置終端的列寬以匹配您當前的寬度/列:

  colordiff -y --width = $ COLUMNS mylovelyfile1.txt mylovelyfile2.txt  


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...