給中級Meld用戶的有用技巧
Meld 是 Linux 上功能豐富的可視化比較和合并工具。如果你是***次接觸,你可以進(jìn)入我們的初學(xué)者指南,了解該程序的工作原理,如果你已經(jīng)閱讀過或正在使用 Meld 進(jìn)行基本的比較/合并任務(wù),你將很高興了解本教程的東西,在本教程中,我們將討論一些非常有用的技巧,這將讓你使用工具的體驗(yàn)更好。
但在我們跳到安裝和解釋部分之前,值得一提的是,本教程中介紹的所有說明和示例已在 Ubuntu 14.04 上進(jìn)行了測試,而我們使用的 Meld 版本為 3.14.2。
1、 跳轉(zhuǎn)
你可能已經(jīng)知道(我們也在初學(xué)者指南中也提到過這一點(diǎn)),標(biāo)準(zhǔn)滾動(dòng)不是在使用 Meld 時(shí)在更改之間跳轉(zhuǎn)的唯一方法 - 你可以使用向上和向下箭頭鍵輕松地從一個(gè)更改跳轉(zhuǎn)到另一個(gè)更改位于編輯區(qū)域上方的窗格中:
Navigating in Meld
但是,這需要你將鼠標(biāo)指針移動(dòng)到這些箭頭,然后再次單擊其中一個(gè)(取決于你要去哪里 - 向上或向下)。你會(huì)很高興知道,存在另一種更簡單的方式來跳轉(zhuǎn):只需使用鼠標(biāo)的滾輪即可在鼠標(biāo)指針位于中央更改欄上時(shí)進(jìn)行滾動(dòng)。

The change bar
這樣,你就可以在視線不離開或者分心的情況下進(jìn)行跳轉(zhuǎn),
2、 可以對更改進(jìn)行的操作
看下上一節(jié)的***一個(gè)屏幕截圖。你知道那些黑箭頭做什么吧?默認(rèn)情況下,它們允許你執(zhí)行合并/更改操作 - 當(dāng)沒有沖突時(shí)進(jìn)行合并,并在同一行發(fā)生沖突時(shí)進(jìn)行更改。
但是你知道你可以根據(jù)需要?jiǎng)h除個(gè)別的更改么?是的,這是可能的。為此,你需要做的是在處理更改時(shí)按下 Shift 鍵。你會(huì)觀察到箭頭被變成了十字架。
Things you can do with changes
只需點(diǎn)擊其中任何一個(gè),相應(yīng)的更改將被刪除。
不僅是刪除,你還可以確保沖突的更改不會(huì)在合并時(shí)更改行。例如,以下是一個(gè)沖突變化的例子:
Delete changes in Meld
現(xiàn)在,如果你點(diǎn)擊任意兩個(gè)黑色箭頭,箭頭指向的行將被改變,并且將變得與其他文件的相應(yīng)行相似。只要你想這樣做,這是沒問題的。但是,如果你不想要更改任何行呢?相反,目的是將更改的行在相應(yīng)行的上方或下方插入到其他文件中。
我想說的是,例如,在上面的截圖中,需要在 “test23” 之上或之下添加 “test 2”,而不是將 “test23” 更改為 “test2”。你會(huì)很高興知道在 Meld 中這是可能的。就像你按下 Shift 鍵刪除注釋一樣,在這種情況下,你必須按下 Ctrl 鍵。
你會(huì)觀察到當(dāng)前操作將被更改為插入 - 雙箭頭圖標(biāo)將確認(rèn)這一點(diǎn) 。
Change actions
從箭頭的方向看,此操作可幫助用戶將當(dāng)前更改插入到其他文件中的相應(yīng)更改 (如所選擇的)。
3、 自定義文件在 Meld 的編輯器區(qū)域中顯示的方式
有時(shí)候,你希望 Meld 的編輯區(qū)域中的文字大小變大(為了更好或更舒適的瀏覽),或者你希望文本行被包含而不是脫離視覺區(qū)域(意味著你不要想使用底部的水平滾動(dòng)條)。
Meld 在 Editor 選項(xiàng)卡(Edit->Preferences->Editor)的 Preferences 菜單中提供了一些顯示和字體相關(guān)的自定義選項(xiàng),你可以進(jìn)行這些調(diào)整:
Meld preferences
在這里你可以看到,默認(rèn)情況下,Meld 使用系統(tǒng)定義的字體寬度。只需取消選中 Font 類別下的框,你將有大量的字體類型和大小選項(xiàng)可供選擇。
然后在 Display 部分,你將看到我們正在討論的所有自定義選項(xiàng):你可以設(shè)置 Tab 寬度、告訴工具是否插入空格而不是 tab、啟用/禁用文本換行、使Meld顯示行號和空白(在某些情況下非常有用)以及使用語法突出顯示。
4、 過濾文本
有時(shí)候,并不是所有的修改都是對你很重要的。例如,在比較兩個(gè) C 編程文件時(shí),你可能不希望 Meld 顯示注釋中的更改,因?yàn)槟阒幌雽W⒂谂c代碼相關(guān)的更改。因此,在這種情況下,你可以告訴 Meld 過濾(或忽略)與注釋相關(guān)的更改。
例如,這里是 Meld 中的一個(gè)比較,其中由工具高亮了注釋相關(guān)更改:
Filter Text in Meld
而在這種情況下,Meld 忽略了相同的變化,僅關(guān)注與代碼相關(guān)的變更:
Ignore Changes in Meld
很酷,不是嗎?那么這是怎么回事?為此,我是在 “Edit->Preferences->Text Filters” 標(biāo)簽中啟用了 “C comments” 文本過濾器:
C-Comments in Meld
如你所見,除了 “C comments” 之外,你還可以過濾掉 C++ 注釋、腳本注釋、引導(dǎo)或所有的空格等。此外,你還可以為你處理的任何特定情況定義自定義文本過濾器。例如,如果你正在處理日志文件,并且不希望 Meld 高亮顯示特定模式開頭的行中的更改,則可以為該情況定義自定義文本過濾器。
但是,請記住,要定義一個(gè)新的文本過濾器,你需要了解 Python 語言以及如何使用該語言創(chuàng)建正則表達(dá)式。
總結(jié)
這里討論的所有四個(gè)技巧都不是很難理解和使用(當(dāng)然,除了你想立即創(chuàng)建自定義文本過濾器),一旦你開始使用它們,你會(huì)認(rèn)為他們是真的有好處。這里的關(guān)鍵是要繼續(xù)練習(xí),否則你學(xué)到的任何技巧不久后都會(huì)忘記。
你還知道或者使用其他任何中級 Meld 的貼士和技巧么?如果有的話,歡迎你在下面的評論中分享。