2010-11-25 30 views
2

在vim的,我怎麼能運行下面的邏輯在我的文件:如何根據vim中的條件執行行的串聯?

如果該行不n以分號結束,拼接線nn + 1

我有打破SQL語句文件:

破版本

select * from tab1; 
select col4, col5 from 
tab5; 
insert into 
tab6 values(
2, 4); 

所需版本

select * from tab1; 
select col4, col5 from tab5; 
insert into tab6 values(2, 4); 

回答

4
:v/;$/normal J 

您可能需要多次運行它。

編輯:這裏是解決線分割在多箇中的溶液(> 2)行:

%s/^\s*$\|\([^;]\)\s*\n/\1/g 

注:空行被保持,但修剪,由於^ \ S *

$
+0

謝謝,但這`幾`會跑到1000我的。有沒有辦法讓這個自動化? – Lazer 2010-11-25 15:38:57

1

無恥「髒」,「黑客」 ;-)

:1,$ join 

這個連接上的文件到一個單一的每一行,但可以調整的範圍...

:s:;:&\r:g 

這代替了每一個;帶着;和一個換行

HTH