Vor*_*rac 7 command-line programming diff ncurses merge
所以我们都diff
默认安装了命令。我当然不知道如何很好地使用它。但我希望有一些合理的默认用法。但是当我打字时,diff file1 file2
我得到了……一个文本……我必须在脑子里解析……这无济于事,因为这是两个文本的奇怪组合,而这两个文本本身又非常复杂。
所以我寻找了一个图形解决方案,例如meld
. 开箱即用的效果要好得多。
然而,我更愿意一直保持在命令行上。是否有一个相当标准的命令:
libncurses
vim
,emacs
也不依赖于IDE如果没有,为什么不呢?我看了看,colordiff
但它并没有完全削减它。
听起来达美航空可以满足其中许多要求:
https://github.com/dandavison/delta
总结特点:
- 语言语法高亮...
- 字级差异突出显示...
- 带换行的并排视图
- 改进了合并冲突显示
- 可以直接从 diff 中复制代码(默认情况下会删除 -/+ 标记)。
- GitHub/GitLab/Bitbucket 页面(--超链接)。文件路径还可以格式化为超链接,以便在操作系统中打开。
...
上面链接的示例屏幕截图:
我担心这个答案不会让您满意,但我认为您提出了相互矛盾的限制。
但首先我必须捍卫经典的 diff 工具:它的主要目的是生成应该由机器在应用程序上处理的软件补丁。此外,这些补丁被设计得尽可能紧凑,并且最好仅使用 ASCII 字符,以便可以通过电子邮件、Usenet 等快速可靠地共享它们。
这些补丁可以被人类读取(并被某些人理解)也是一个重要的属性,但不是首要任务。
我完全理解并分享您对简单和基本命令行工具的渴望,但是并排差异(可能带有颜色突出显示)既不简单也不在我们对真正的命令行工具的期望范围之内,仅仅是因为它不再是面向行的。
其次是基于 Vi 或 Emacs 的工具,这些工具尽可能简单明了,易于人类接收,同时具有高度灵活性。它们还提供强大的合并功能。
vimdiff
评论中已经提到了这些。
对于 Emacs,文件比较通常从编辑器内开始。最常用的工具是 Ediff,它提供了无数对应于各种需求的入口点:比较两个文件、树文件、将其中一个文件视为共同祖先等等。可能的合并也是如此。
尽管不寻常,我还是从命令行设置了对 Ediff 的访问:如果你使用以下命令启动 Emacs:
emacs FILE1 FILE2 -nw --eval "(apply 'ediff-buffers (last (nreverse (buffer-list)) 2))"
Run Code Online (Sandbox Code Playgroud)
然后您直接跳入交互式 Ediff 会话,在终端内比较FILE1
和。FILE2
如果省略该-nw
选项(并且满足所有要求),您将在单独的图形框架中获得相同的会话。另请参阅ashutosh jain 提出的相关问题。
好吧,我不会说 Emacs 是一个简单的工具。但如果你认真研究它几年,你就会喜欢它。(个人想法。)
所以,不幸的是,没有:我不知道有什么工具可以满足您的所有限制。
归档时间: |
|
查看次数: |
2471 次 |
最近记录: |