我正在寻找可以在Ubuntu服务器上安装的东西,这将使我能够比默认diff命令更易于理解和理解的方式比较PHP,Javascript,CSS,HTML和其他纯文本文件的内容。

必须具有


文件内容的并排比较,指示文件1到文件2的不同行
从控制台运行(无桌面环境)已安装)
支持纯文本文件

想要具有


用于突出显示更改的颜色
同步滚动(两个文件的行在进行比较时并排并保持视野)
一行中的更改指示(例如,将“一个问题”与“这是一个问题”行进行比较将表明/突出显示“此是”是区别,而不是仅仅指出整行内容有所不同)。

我最好喜欢WinMerge的文件比较功能:


对于Ubuntu,但我了解并非仅控制台应用程序可能具备所有功能。

评论

相关:适用于Ubuntu的Difftool,例如OS X的Opendiff

#1 楼

vimdiff

vimdiff file1 file2


还可以将它与git一起使用,例如:

git difftool --tool=vimdiff HEAD^ HEAD




#2 楼

因此,您需要具有非常基本功能的交互式差异工具。显而易见的答案是Emacs(Ubuntu:emacs),它包含大约20年前的Ediff。

打开要比较的两个文件,然后选择“工具→比较(Ediff)→两个缓冲区”。 …”。或选择“工具→比较(Ediff)→两个文件…”,然后输入文件名。您可以改用命令ediff-buffersediffediff-files的别名)(按Alt + X,然后键入ediff,然后按Enter)。在Ediff模式下的主要命令是:



|可以在两个文件之间一个接一个地显示(默认)或并排显示两个文件

n移至下一行不同的行

p移至上一行不同的行

q退出Ediff模式

?寻求帮助

C-x o(Ctrl + X然后小写O)可在三个缓冲区(文件1,文件2和Ediff控制面板)之间导航。

Ediff也可以如果您有一个共同的祖先文件,请进行三向比较,并可以帮助进行合并。 “工具”菜单中的条目应足以帮助您入门;有关详细信息,请参见手册。

Emacs还可以自动从svn和其他版本控制系统中提取修订。请查看“工具→版本控制”菜单下或手册中的更多信息。

使用Emacs的GUI版本可能会更舒适。 Emacs可在所有主要操作系统上运行(在Windows上,我使用EmacsW32),并且可以通过SSH(和其他方法)透明地访问远程文件。要通过SSH打开远程文件,请键入/name-of-host:/path/to/file作为文件名。在Windows下,如果您使用的是PuTTY for SSH,请确保已安装plink并在Emacs的PATH上,然后将(setq tramp-default-method "plink")放入~/.emacs中。有关更多详细信息,请参见流浪汉手册。

#3 楼

如果您喜欢diff,但希望它更易于理解和阅读,则可以使用colordiff-与diff基本相同,但具有彩色突出显示。

使用diff或colordiff进行并排比较您可以添加-y选项。您还可以使用sdiff-与diff-y选项一起输出的并排比较要比q4312079q干净一些(至少在Fedora上,它们看起来非常相似,但不确定每个人是否都一样)。

突出显示不同的单词,而不是整行。

还可以设置终端的列宽以匹配当前的宽度/列:

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