給中級 Meld 使用者的實用技巧

發表於2017-09-03

Meld 是 Linux 上功能豐富的視覺化比較和合並工具。如果你是第一次接觸,你可以進入我們的初學者指南,瞭解該程式的工作原理,如果你已經閱讀過或正在使用 Meld 進行基本的比較/合併任務,你將很高興瞭解本教程的東西,在本教程中,我們將討論一些非常有用的技巧,這將讓你使用工具的體驗更好。

但在我們跳到安裝和解釋部分之前,值得一提的是,本教程中介紹的所有說明和示例已在 Ubuntu 14.04 上進行了測試,而我們使用的 Meld 版本為 3.14.2

1、 跳轉

你可能已經知道(我們也在初學者指南中也提到過這一點),標準滾動不是在使用 Meld 時在更改之間跳轉的唯一方法 – 你可以使用向上和向下箭頭鍵輕鬆地從一個更改跳轉到另一個更改位於編輯區域上方的窗格中:

Navigating in Meld

但是,這需要你將滑鼠指標移動到這些箭頭,然後再次單擊其中一個(取決於你要去哪裡 – 向上或向下)。你會很高興知道,存在另一種更簡單的方式來跳轉:只需使用滑鼠的滾輪即可在滑鼠指標位於中央更改欄上時進行滾動。

The change bar

這樣,你就可以在視線不離開或者分心的情況下進行跳轉,

2、 可以對更改進行的操作

看下上一節的最後一個螢幕截圖。你知道那些黑箭頭做什麼吧?預設情況下,它們允許你執行合併/更改操作 – 當沒有衝突時進行合併,並在同一行發生衝突時進行更改。

但是你知道你可以根據需要刪除個別的更改麼?是的,這是可能的。為此,你需要做的是在處理更改時按下 Shift 鍵。你會觀察到箭頭被變成了十字架。

Things you can do with changes

只需點選其中任何一個,相應的更改將被刪除。

不僅是刪除,你還可以確保衝突的更改不會在合併時更改行。例如,以下是一個衝突變化的例子:

Delete changes in Meld

現在,如果你點選任意兩個黑色箭頭,箭頭指向的行將被改變,並且將變得與其他檔案的相應行相似。只要你想這樣做,這是沒問題的。但是,如果你不想要更改任何行呢?相反,目的是將更改的行在相應行的上方或下方插入到其他檔案中。

我想說的是,例如,在上面的截圖中,需要在 “test23” 之上或之下新增 “test 2”,而不是將 “test23” 更改為 “test2”。你會很高興知道在 Meld 中這是可能的。就像你按下 Shift 鍵刪除註釋一樣,在這種情況下,你必須按下 Ctrl 鍵。

你會觀察到當前操作將被更改為插入 – 雙箭頭圖示將確認這一點 。

Change actions

從箭頭的方向看,此操作可幫助使用者將當前更改插入到其他檔案中的相應更改 (如所選擇的)。

3、 自定義檔案在 Meld 的編輯器區域中顯示的方式

有時候,你希望 Meld 的編輯區域中的文字大小變大(為了更好或更舒適的瀏覽),或者你希望文字行被包含而不是脫離視覺區域(意味著你不要想使用底部的水平滾動條)。

Meld 在 Editor 選項卡(Edit->Preferences->Editor)的 Preferences 選單中提供了一些顯示和字型相關的自定義選項,你可以進行這些調整:

Meld preferences

在這裡你可以看到,預設情況下,Meld 使用系統定義的字型寬度。只需取消選中 Font 類別下的框,你將有大量的字型型別和大小選項可供選擇。

然後在 Display 部分,你將看到我們正在討論的所有自定義選項:你可以設定 Tab 寬度、告訴工具是否插入空格而不是 tab、啟用/禁用文字換行、使Meld顯示行號和空白(在某些情況下非常有用)以及使用語法突出顯示。

4、 過濾文字

有時候,並不是所有的修改都是對你很重要的。例如,在比較兩個 C 程式設計檔案時,你可能不希望 Meld 顯示註釋中的更改,因為你只想專注於與程式碼相關的更改。因此,在這種情況下,你可以告訴 Meld 過濾(或忽略)與註釋相關的更改。

例如,這裡是 Meld 中的一個比較,其中由工具高亮了註釋相關更改:

Filter Text in Meld

而在這種情況下,Meld 忽略了相同的變化,僅關注與程式碼相關的變更:

Ignore Changes in Meld

很酷,不是嗎?那麼這是怎麼回事?為此,我是在 “Edit->Preferences->Text Filters” 標籤中啟用了 “C comments” 文字過濾器:

C-Comments in Meld

如你所見,除了 “C comments” 之外,你還可以過濾掉 C++ 註釋、指令碼註釋、引導或所有的空格等。此外,你還可以為你處理的任何特定情況定義自定義文字過濾器。例如,如果你正在處理日誌檔案,並且不希望 Meld 高亮顯示特定模式開頭的行中的更改,則可以為該情況定義自定義文字過濾器。

但是,請記住,要定義一個新的文字過濾器,你需要了解 Python 語言以及如何使用該語言建立正規表示式。

總結

這裡討論的所有四個技巧都不是很難理解和使用(當然,除了你想立即建立自定義文字過濾器),一旦你開始使用它們,你會認為他們是真的有好處。這裡的關鍵是要繼續練習,否則你學到的任何技巧不久後都會忘記。

你還知道或者使用其他任何中級 Meld 的貼士和技巧麼?如果有的話,歡迎你在下面的評論中分享。

相關文章