2010-11-25 59 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