linux命令(36) vimdiff檔案對比

2022-05-06 07:51:11 字數 1874 閱讀 1866

首先保證系統中的diff命令是可用的。vim的diff模式是依賴於diff命令的。vimdiff的基本用法就是:

# vimdiff  file_left  file_right

或者

# vim -d  file_left  file_right
除了用這種方法啟動vim的diff模式之外,我們還可以用分割視窗命令來啟動diff模式:

# vim file_left

然後在vim的ex模式(也就是"冒號"模式)下輸入:

:vertical diffsplit file_right
也可以達到同樣的效果。如果希望交換兩個視窗的位置,或者希望改變視窗的分割方式,可以使用下列命令:

1. ctrl-w k(把當前視窗移到最上邊)

2. ctrl-w h(把當前視窗移到最左邊)

3. ctrl-w j(把當前視窗移到最下邊)

4. ctrl-w l(把當前視窗移到最右邊)

其中1和3兩個操作會把視窗改成水平分割方式。

接下來試試在行間移動游標,可以看到左右兩側的螢幕滾動是同步的。這是因為"scrollbind"選項被設定了的結果,vim會盡力保證兩側檔案的對齊。如果不想要這個特性,可以設定:

:set noscrollbind

]c

反向跳轉是:

[c

如果在命令前加上數字的話,可以跳過乙個或數個差異點,從而實現跳的更遠。比如如果在位於第乙個差異點的行輸入"2]c",將越過下乙個差異點,跳轉到第三個差異點。

檔案比較的最終目的之一就是合併,以消除差異。如果希望把乙個差異點中當前檔案的內容複製到另乙個檔案裡,可以使用命令

dp (diff "put")

如果希望把另乙個檔案的內容複製到當前行中,可以使用命令

do (diff "get",之所以不用dg,是因為dg已經被另乙個命令占用了)

如果希望手工修改某一行,可以使用通常的vim操作。如果希望在兩個檔案之間來回跳轉,可以用下列命令序列:

ctrl-w, w

在修改乙個或兩個檔案之後,vimdiff會試圖自動來重新比較檔案,來實時反映比較結果。但是也會有處理失敗的情況,這個時候需要手工來重新整理比較結果:

:diffupdate

如果希望撤銷修改,可以和平常用vim編輯一樣,直接

, u

但是要注意一定要將游標移動到需要撤銷修改的檔案視窗中。

在比較和合併告一段落之後,可以用下列命令對兩個檔案同時進行操作。比如同時退出:

:qa (quit all)

如果希望儲存全部檔案:

:wa (write all)

或者是兩者的合併命令,儲存全部檔案,然後退出:

:wqa (write, then quit all)

如果在退出的時候不希望儲存任何操作的結果:

:qa! (force to quit all)

比較和合併檔案的時候經常需要結合上下文來確定最終要採取的操作。vimdiff 預設是會把不同之處上下各 6 行的文字都顯示出來以供參考。其他的相同的文字行被自動摺疊。如果希望修改預設的上下文行數,可以這樣設定:

:set diffopt=context:3

可以用簡單的摺疊命令來臨時展開被摺疊的相同的文字行:

zo (folding open,之所以用z這個字母,是因為它看上去比較像摺疊著的紙)

然後可以用下列命令來重新摺疊:

zc (folding close)

linux每日命令 36 wc命令

linux系統中的wc word count 命令的功能為統計指定檔案中的位元組數 字數 行數,並將統計結果顯示輸出。wc clw help version 檔案.利用wc指令我們可以計算檔案的byte數 字數 或是列數,若不指定檔名稱 或是所給予的檔名為 則wc指令會從標準輸入裝置讀取資料。引數描...

36 Linux dd命令詳解

dd 是 linux unix 下的乙個非常有用的命令,作用是 用指定大小的塊拷貝乙個檔案,並在拷貝的同時進行指定的轉換。名稱 dd 使用許可權 所有使用者dd 這個指令在 manual 裡的定義是 convert and copy a file 使用方式 dd option dd help 或是 ...

每天乙個linux命令 36 vmstat命令

vmstat 是 virtual memory statistics 虛擬記憶體統計 的縮寫,可對作業系統的虛擬記憶體 程序 cpu活動進行監控。他是對系統的整體情況進行統計,不足之處是無法對某個程序進行深入分析。vmstat 工具提供了一種低開銷的系統效能觀察方式。因為 vmstat 本身就是低開...