2012-10-23 91 views

回答

7

嘗試:g/^$/d,它將刪除所有空行。 g表示global^$是一個正則表達式,基本上意思是'匹配行以中間沒有任何內容開始和結束',而d表示delete。你可以混合和匹配,因爲你需要:)

另一個空間相關命令可能會派上用場,如果你有隨機空白是:%s/\s\+$//,其修剪任何尾隨空格(如@Bernhard指出,$操作裝置儘可能多您每行最多有一次出現,因此g是不必要的)。

根據更新,可能的行已經包含空格,在這種情況下:g/^\s*$/d應該工作。

+0

謝謝!但奇怪的是,大部分空行被刪除,但仍有一些(很少)。請看我的編輯。 – alexchenco

+0

@alexchenco沒有問題!不確定是否打開了空白突出顯示,但可能會有其他空白。嘗試運行'g/^ \ s * $/d',看看它是否被刪除。 – RocketDonkey

+0

嘿,謝謝! 'g/^ \ s * $/d'做到了。奇怪的是,這是因爲白色空間的拖延?我會在3分鐘過去後接受答案。順便說一下,如何恢復與Vim? (在每個新行後添加一個空行?) – alexchenco

5

我使用的命令是

:v/./d 

The v command那些給定的模式匹配線相匹配。 它從ed繼承。

+0

謝謝!如何做相反的事情?換行後添加空行? – alexchenco

+1

':%s/[\ r \ n] [\ r \ n] */&&/g'或者只用':%s/\ n/&& /'處理Unix文本文件 – reinierpost

+0

非常感謝,想知道! – alexchenco

相關問題