ediff emacs中比較檔案異同

2021-06-16 05:40:06 字數 1537 閱讀 6798

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則可以忽略這類不同,很容易就定位我們真正想要的差異。

21以上版本的emacs已經內建了ediff程式包,無需另外安裝了。 ediff主要提供了如下這些命令:

比較兩檔案:m-x ediff-files m-x ediff

比較兩個buffer:m-x ediff-buffers

比較三個檔案:m-x ediff-file3 ediff3

比較三個buffer:m-x ediff-buffer3

互動式使用乙個patch:m-x ediff-patch-file epatch

ediff命令被執行後,進行所謂的『ediff session』它接受一些ediff命令以決定ediff的行為。具體的表現是ediff另外建立乙個視窗(稱為「quick help window」),

當聚焦在該視窗輸入則被認為是ediff命令 ,否則仍是一般的emacs編輯行為,即還可以實時的編輯你正在比較的檔案或buffer。

在「quick help window」上輸入「?」使該視窗變大或是縮小,輸入q並確認則完成比較退出ediff session。

極常用的 session command

這些命令快捷鍵在「quick help window」上執行才有效 )

v ( v ):把檔案-a,檔案-b,檔案-c(如果有),同步向下(向上)滾動,

< ( > ):把檔案-a,檔案-b,檔案-c(如果有),同步向左(向右)滾動,

j:跳到差異區域,可以先加數值引數,如 『3j』則跳到第三個差異區域,『j』則跳到第乙個差異區域, 則『-2j』跳到倒數第二個差異區域。跳到某區域後,再輸入的編輯命令就是針對該區域執行,即有乙個「當前區域」的概念,而『j』命令則就是用於使用絕對 引數設定當前活動區域。

p (或 del):跳到前乙個差異區域,並設其為當前區域,

ga ( gb gc ):根據游標在buffer-a(或buffer-b, buffer-c)中的位置,設定乙個離它們最近的差異區域為當前活動區域

摘自:

shell指令碼中比較

二元比較操作符,比較變數或者比較數字.注意數字與字串的區別.整數比較 eq 等於,如 if a eq b ne 不等於,如 if a ne b gt 大於,如 if a gt b ge 大於等於,如 if a ge b lt 小於,如 if a lt b le 小於等於,如 if a le b 小於...

JavaScript中「 」比較規則

1 js中有6個值為false,分別是 0,或者雙引號 null,undefined,nan,false console.log new boolean false false true console.log new boolean true true true 另外,js中有boolean物件,...

js中比較時間大小

js中如何比較date的大小 首先在jquery中獲取到date的值 一般的在jquery中獲取值用 val 在easyui中是要獲取date控制項的值,不同的date控制有不同的獲取方式 var time1 studentbirth datebox getvalue 獲取date控制項的值 var...