Linux控制台有任何视觉差异吗?[关闭]


72

很多年前,我使用了DOS和Linux都可以使用的d32

这样的Linux是否可以使用非GUI视觉差异?

Vim和Emacs以外的任何其他工具(Vim和Emacs太强大了:-))


1
也许将其移至softwarerecommendations.SX?
einpoklum

问题很接近,但是我需要添加:如果您喜欢该vimdiff选项,但是neovim用户:nvim -d分别使用(alias diff = 'nvim -d')。别客气。
Riscie

Answers:



27

如果您对感到满意git,也可以使用git diff为您生成一条路径。通常,它通常会为您提供漂亮的颜色,将页面转到less,默认情况下输出统一的diff格式。无论文件是否是git存储库的一部分,它都可以工作。

git diff -- file.a file.b

如果file.afile.b驻留在git repo中并且未跟踪,则需要提供supply --no-index

git diff --no-index -- file.a file.b

因为默认情况下git将针对索引进行比较。


21

这里的现有答案都不适合我的用例,但是我发现了cdiff,这是一个很小的软件,可以完全满足我的需求:

基于术语的工具,可在Git / Mercurial / Svn工作区中或从stdin中查看彩色的增量差异,并排和自动寻呼机支持。

并排模式如下所示:

并排diff输出


似乎它只是用于分析VCS输出
西普里安Tomoiagă

3
它处理标准差异格式的显示。它本身不会生成差异-您可以使用diff -u one.txt two.txt | cdiff
尼克·诺尔森

我发现cdiff -s -w 0在这种情况下效果很好。感谢您指出我们的差异。
WeakPointer

2
人们可能会发现有用的“改进差异”:github.com/jeffkaufman/icdiff
Keith

哈利路亚!!!!!
罗斯,




3

我个人喜欢使用vimdiff。但是,如果您不知道vim会对您没有帮助。


1
没有太多特定于vim的技巧vimdiff(除了记住如何退出。)提示是您可以指定-o开关以使其使用水平窗口而不是默认的垂直(-O。)
MarkHu

3

您的标题提到“ Linux控制台”,但问题提到meld,这是一个GUI应用程序。如果您可以澄清这一点,可能会对回答者有所帮助。

在GUI应用程序中,meld仍然几乎是标准。它运作良好,相当漂亮且直观。

如果您真的仅限于使用控制台(即纯文本),那么除了像这样的编辑器中内置的diff实用程序之外vimemacs您还可以尝试使用原始命令行实用程序diff。我发现使用该-y选项并排显示文件非常有用,还有其他一些选项用于显示“统一”差异,并精确设置匹配差异周围的上下文数量。如果将diff的输出传递给less您,则可以非常方便地进行浏览。


感谢Cral,问题不仅仅限于使用控制台,我更喜欢使用控制台模式:-)
leedit 2010年

3

午夜指挥官(mc)具有内置的diff和许多有用的功能。尝试:

须藤apt安装mc


2

vimdiff将做您想要的。大多数Linux发行版默认都安装了Vim,因此您可能甚至不需要安装任何东西。


2

Emacs具有内置的视觉差异工具:M-x ediff


您是否阅读了完整的问题?
Sid Sarasvati 2014年

是的,但是如果您查看问题的编辑历史记录,您会注意到有关“不是Vim或Emacs”的部分是我编写答案完成的。:)
JesperE 2014年

2
太糟糕了,我不能对此做Mx vc-diff。和平:)
Sid Sarasvati 2014年

2
没有问题。不得不做一些自我挖掘,以了解为什么似乎我没有读过这个问题。:)
JesperE 2014年

1

我开始在控制台中重建xxdiff(因为我已经完全切换到tmux控制台开发),成为一个新的基于Python的单文件工具,我称之为“ termdiff”。我遇到了诅咒兼容性问题,所以我暂时搁置了这一点,我只需要一些时间来解决一些小问题,以填补空白,但是它当前吐出的输出看起来像xxdiff,您可以将其输出到更少的位置。

http://furius.ca/xxdiff/bin/termdiff

尝试termdiff --cat或termdiff --less,它可以工作。

在此期间,我正在使用自定义的Emacs配置和ediff,但启动起来有点慢,我仍然希望控制台中有一个快速启动的专用diff程序。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.