NAL

Lingerie Divorceisgood.com Divorce Is Good Emacs/EDIFF - 站长百科

Lingerie Divorceisgood.com Divorce Is Good

  • ASP
  • PHP
  • HTML
  • Lingerie ra Lingerie wsearchasearchs Divorceisgood.com asearchsac Divorceisgood.com
  • Window
  • Linux
  • Apache
  • IIS
  • 开发语言
  • 开放平台
  • 网站联盟
  • 网络术语
    工具箱

     

    Emacs/EDIFF

    站长已建立词条18103个!

    站长百科打造专业的站长知识分享平台!

    站长百科诚邀"个人"团体"官方"参与条目建设!

    来自站长百科
    跳转到: 导航, 搜索

    emacs | Emacs使用 | Emacs插件

    '粗体文字'EdiffEmacs集成的比较与合并(merge)文本文件内容的工具。有了它,你可以方便地比较两个(或三个)不同文件、文件夹。

    目录

    软件概况

    授权协议:免费软件

    运行环境:Emacs

    官方网站:freeware/ediff.htm

    软件下载:官方下载

    简介

    Ediff是Emacs提供的一种实时浏览文件间不同(diff)的工具,它可以比较两个或三个文件间的不同,分别表示为 file-A, file-B 或 file-C, 也可以比较两个或三个emacs-buffer间的不同。Ediff的另一个强有力特性则是可以把正的比较的文件合并成第三个文件。 另外, Ediff还可以对目录进行操作。

    Ediff浏览文件的差异是在Emacs的两个Buffer上进行,分别使用不同的颜色表示所存在的差异,而且Ediff对差异区域的差异进行了“细化”,diff程序只进行到“行”级别比较,而Ediff则是基于diff程序的输出上,对差异区域进行更细致的比较,从而得到区域内“单词”级别上的差异比较。从而使比较文件间的细致不同更加容易。

    Ediff的更强功能:Ediff可以“忽略”某些细微的差别,例如有两个程序几乎相同,但是其中都些变量的命名却不一样,如bar变量在另一个程序中却都foo,这对程序而言是“相同”,如果用一般的diff程序来查看该两程序的差别,则这种没有意义的变量名不同将充满了整个差异输出,从而不易找到真正的“程序不同”,而使用Ediff则可以忽略这类不同,很容易就定位我们真正想要的差异。

    Ediff的特点是它与编辑器(即Emacs本身)集成在一起,所以在比较的过程可以方便的编辑被比较的文件。例如语法高亮仍然有效。它还提供了对版本控制工具的支持,例如用ediff-revision命令可以方便的比较不同版本之间的区别。

    Ediff命令

    • 比较两文件: ‘M-x ediff-files’‘M-x ediff’(以后略去M-x)
    • 比较两个Buffer: ‘ediff-buffers’
    • 比较三个文件: ediff-file3 ediff3
    • 比较三个Buffer: ediff-buffer3
    • 交互式使用一个patch: ediff-patch-file epatch

    以上是一些主要的命令,这些命令在运行时可能会提示输入一些参数,如文件名等,同时都能很智能地提供一些合适的默认值。

    Ediff命令被执行后,进行所谓的‘Ediff Session’它接受一些Ediff命令以决定Ediff的行为。具体的表现是Ediff另外建立一个窗口(称为“Quick Help window”),当聚焦在该窗口输入则被认为是Ediff命令,否则仍是一般的Emacs编辑行为,即还可以实时的编辑你正在比较的文件或Buffer。

    在“Quick Help window”上输入“?”使该窗口变大或是缩小,输入q并确认则完成比较退出Ediff Session。

    常用的Session Command:

    移动命令

    • v ( V )

    把文件-A,文件-B,文件-C(如果有),同步向下(向上)滚动,

    • < ( > )

    把文件-A,文件-B,文件-C(如果有),同步向左(向右)滚动,

    • j

    跳到差异区域,可以先加数值参数,如 ‘3j’则跳到第三个差异区域,‘j’则 跳到第一个差异区域, 则‘-2j’跳到倒数第二个差异区域。跳到某区域后,再输入的编辑命令就是针对该区域执行,即有一个“当前区域”的概念,而‘j’命令则就是用于使用绝对参数设置当前活动区域。

    • n (或 SPC 空格)

    跳到下一个差异区域,并设其为当前区域,

    • p (或 DEL)

    跳到前一个差异区域,并设其为当前区域,

    • ga ( gb gc )

    根据光标在Buffer-A(或Buffer-B, Buffer-C)中的位置,设置一个离它们最近的差异区域为当前活动区域

    编辑命令

    • a

    比较模式: 把Buffer-A的内容复制到Buffer-B,可以使用‘rb’恢复Buffer-B的内容,

    合并模式: 把Buffer-A的内容复制到合并Buffer. 可以使用‘r’恢复旧内容,

    • b

    比较模式: 把Buffer-B的内容复制到Buffer-A,可以使用‘ra’恢复Buffer-A的内容,

    合并模式: 把Buffer-B的内容复制到合并Buffer. 可以使用‘r’恢复旧内容,

    • ra ( rb rc )

    分别用于恢复 Buffer-A Buffer-B Buffer-C 差异区域中的被修改的内容。

    三方比较的编辑命令

    • ab

    把Buffer-A的内容复制到Buffer-B,可以使用‘rb’恢复Buffer-B的内容,

    • ac

    把Buffer-A的内容复制到Buffer-C,可以使用‘rc’恢复Buffer-C的内容,

    • ba
    • bc
    • ca
    • cb

    分别把Buffer-B(C)的内容复制到相应的Buffer-ABC,同时仍可以使用‘ra(bc)'恢复相应的被修改的内容。

    Buffer属性设置命令

    • A ( B C )

    改变Buffer-A, buffer-B, buffer-C的只读属性,是Toggle命令。

    参考来源

    Emacs使用手册导航

    eLingerie Divorceisgood.com Divorce Is Good Emacs/EDIFF - 站长百科i VibratorpLingerie Divorceisgood.com Divorce Is Good Emacs/EDIFF - 站长百科l p Www.porm.com