【问题标题】:How to make vc-diff output more compact如何使 vc-diff 输出更紧凑
【发布时间】:2013-11-19 13:31:40
【问题描述】:

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

有没有办法让这个差异输出更易读并且仍然可用(以便我可以快速跳转到源代码)?

(我可以

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

但这不是很方便)

【问题讨论】:

    标签: emacs rcs vcdiff


    【解决方案1】:

    您可能想尝试设置

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

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

    【讨论】:

      【解决方案2】:

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

      Emacs 的差异模式可以将差异从一种格式转换为另一种格式。键入 C-c C-u 将上下文差异转换为统一差异,而 C-c C-d 则相反。

      例如,这个上下文差异:

      *** 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
      

      将转换为这个统一的差异:

      --- 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-c C-c跳转到源文件中的对应行。如果找不到正确的文件,请使用 M-x diff-tell-file-name

      【讨论】:

      • M-. Thank you, emacssome!
      猜你喜欢
      • 2021-07-01
      • 1970-01-01
      • 2015-01-26
      • 2022-12-15
      • 2018-05-20
      • 2019-06-29
      • 2011-02-12
      • 2017-07-03
      • 2013-09-06
      相关资源
      最近更新 更多