如何使vc-diff输出更加紧凑



我正在执行C-x v=来检查RCS控制下的文件的当前差异(即,它有一个后缀为,v的关联文件)。然而,输出几乎不可读,因为我更改了每一行,比如说第12行。所以我得到了这些巨大的diff块,在那里我无法轻易地推断出哪一行被改成了另一行。

有没有办法让这个diff输出更可读、更可用(这样我就可以快速跳转到源代码)?

(我可以

  1. C-x v l查看旧版本,然后
  2. 在最后一个上执行f以检查它
  3. M-x构建文件

但这不是很方便)

您可能想尝试设置

(setq diff-switches '("-u"))

这样你的diff就会以统一的格式出现,这会更紧凑一些。如果这还不够,您可以尝试传递额外的标志来减小"上下文"的大小(默认情况下,前面3行,后面3行)。

在RCS中的文件上运行vc-diff时,diff输出默认为"上下文diff"。这意味着旧的和新的区块一个在另一个之上显示,并突出显示差异。更现代的版本控制系统产生"统一diffs",每组更改线路的新旧版本相邻。

Emacs的diff模式可以将diff从一种格式转换为另一种格式。键入C-CC-u将上下文diff转换为统一diff,键入C-CC-d

例如,这个上下文diff:

*** bar.txt 2013/11/19 14:00:03 1.1
--- bar.txt 2013/11/19 14:00:11 1.2
***************
*** 1,5 ****
  one
  two
! tree
  four
  five
--- 1,5 ----
  one
  two
! three
  four
  five

将转换为这种统一的diff:

--- bar.txt 2013/11/19 14:00:03 1.1
+++ bar.txt 2013/11/19 14:00:11 1.2
@@ -1,5 +1,5 @@
 one
 two
-tree
+three
 four
 five

无论diff当前采用哪种格式,您都可以使用C-CC-C跳转到源文件中的相应行。如果找不到正确的文件,请使用M-xdiff-tell-file-name

最新更新