19.10差分模式

Diff模式是用于输出M-x差异其他类似命令。这种输出称为补丁,因为它可以传递给补丁命令到自动应用指定的更改。选择差异模式手动,键入M-x差模.

补丁中指定的更改分为大块头,其中包含一个或多个更改行的连续文本块。大块头通常还包括未更改的线条,以便为变化。每个人前面都有一个大块收割台,其中指定块发生更改的新旧行号。Diff模式突出显示每个块头,以区别于大块的实际内容。

补丁中的第一个块前面是一个文件头,它显示文件的新版本和旧版本的名称及其时间邮票。如果修补程序显示多个文件的更改,则每个文件在该文件的第一部分更改之前具有这样的头。

您可以像编辑任何其他缓冲区一样编辑Diff模式缓冲区。(如果是只读,首先需要使其可写;看见其他缓冲区操作无论何时编辑大块,Diff模式都会尝试自动更正大块标题中的行号,以确保补丁保持不变正确,并且仍然可以由补丁。要禁用自动行号更正,更改变量飞行中的差异更新.

Diff模式安排将块视为编译器错误消息依据M-g-M-n以及处理错误消息的其他命令(请参见编译模式). 因此,您可以使用编译模式访问相应源位置的命令。

此外,Diff模式提供了以下导航命令,操作和应用部分面片:

M-n公司

移动到下一个起点(差异-未知-下一个). 带前缀论点n个,前进到n个第二个帅哥。

默认情况下,Diff模式精制Emacs展示时的大块头,以更好的粒度突出显示其更改。或者,如果你设置好了不同分辨率到符号航行,Diff模式只使用此命令或diff-hunk-prev公司.

M-p公司

移动到上一个大块头(diff-hunk-prev公司). 带前缀论点n个,移回n个前一个大块头。喜欢M-n公司,如果设置不同分辨率到符号航行.

M-}型

在多文件修补程序中移动到下一个文件开始(差异文件-下一个). 带前缀参数n个,向前移动到的开始n个第个文件。

M(M)-{

在多文件修补程序中移动到上一个文件段(diff文件prev). 带前缀参数n个,移回开始n个上一个文件。

M-k公司

当场杀了那个大块头(diff-hunk压井).

M-K公司

在多文件修补程序中,终止当前文件部分。(差射杀伤).

抄送抄送

将此块应用于其目标文件(差异应用大块). 用一个的前缀参数C-u(C-u),还原此块,即应用大块头的反面,将“新”版本改为“旧”版本版本。如果diff跳转到旧文件不是-,应用改为使用文件的“旧”版本。

抄送抄送

以更精细的粒度突出显示大块的变化(异形头). 这使您能够准确地看到哪些部分每一行的更改实际上都已更改。

默认情况下,Diff模式会在Emacs显示块时对其进行细化,因此您可以如果您进行自定义,会发现此命令很有用不同分辨率非默认值。

C-C-C

转到源文件和对应于该块的行(差分电源). 默认情况下,这会跳转到“新”文件的版本,即文件头上最先显示的版本。使用前缀参数,跳转到“旧”版本。如果diff跳转到旧文件不是-,此命令由默认跳转到“旧”文件,以及前缀的含义论点颠倒了。如果前缀参数是一个大于8(例如,如果您键入C-u C-u C-C C-C),则此命令也diff跳转到旧文件用于下一次调用。如果源文件受版本控制(请参见版本控制),默认情况下,这会跳转到工作文件。使用前缀参数,跳转文件的“旧”版本(请参见检查和比较旧版本),何时点位于旧行上,否则跳转到“新”修订。

抄送抄送

使用补丁启动Ediff会话(差异-差异-匹配).请参见埃迪夫在里面爱迪夫手册.

C-C C-n公司

将视图限制为当前块(差异-限制视图).请参见缩小范围。使用前缀参数,限制查看多文件补丁的当前文件。要再次加宽,使用C-x n宽(拓宽).

抄送抄送

反转整个缓冲区的比较方向(差向). 使用前缀参数,反转方向仅在当前区域内(请参见标志和区域). 颠倒方向意味着将块和文件部分标头更改为生成将“新”版本更改为“旧”版本的修补程序一个。

抄送抄送

在某一点上劈开大块头(diff-split-hunk公司)分成两个单独的身材魁梧。这将插入一个大标题并修改现在的大块头。此命令用于手动编辑修补程序,并且只适用于统一diff格式-u个--统一的选项差异程序。如果你需要在上下文差异格式-c(c)--上下文选项到差异,首先将缓冲区转换为统一的diff格式具有C-C-u.

抄送抄送

将整个缓冲区转换为上下文差异格式(差异化->上下文). 使用前缀参数时,仅转换该地区的大块头。

C-C-u

将整个缓冲区转换为统一的diff格式(diff-context->统一). 使用前缀参数,convert统一格式到上下文格式。标记激活时,转换只有区域内的大块头。

C-C C-l公司

重新生成当前块头(diff-refresh-hunk).

C-C C-w公司

重新生成当前的chunk,忽略空白中的更改(diff-ignore-whitespace-hunk).

C-x 4安

生成ChangeLog条目,如C-x 4安是(请参见更改日志),为了每个人(差异-添加-更改-长条目-其他窗口). 这将创建更改日志的骨架,您可以稍后使用实际的更改的描述。C-x 4个a自身处于Diff模式代表当前块的文件进行操作,但获取函数补丁本身的名称。这对于生成以下项的日志条目很有用被修补程序删除的函数。

补丁有时会在修改后的行中包含尾随空格,如一种无意的、不受欢迎的变化。有两种处理方式这个问题。首先,如果在Diff中启用空白模式缓冲器(参见无用的空白),它会自动突出显示修改行中的尾部空白。其次,您可以使用命令M-x差异删除跟踪-白色空间,它搜索由补丁修改的行中的尾部空白,并删除修补程序和修补后的源文件中的空白。此命令不会保存它所做的修改,因此您可以决定是否保存更改(修改的文件列表是显示在回声区)。使用前缀参数,它尝试修改原始(“旧”)源文件,而不是修补的(“新”)源文件。

如果差异-锁定-语法是非-,个片段,共个根据相应的专业突出显示大块来源模式。