如何使用vim文本编辑器删除文本换行



我正在尝试编写一个用于删除文本换行的vim脚本,我使用了以下代码,但它没有提供确切的输出。如果"this"出现在第一行,"indicate"出现在第二行e.t.c,那么我如何删除换行符。有可能吗?

:%s/\string{zs(_[^}]*)ze}/1/gec

根据OP的评论进行编辑:

for example (i/p): string{1 <enterkey> 2 <enterkey> 3 <enterkey> 
4 <enterkey> 5 <enterkey>}. i need (o/p) string{1 2 3 4 5}. 

之前我有:

string{1
2
3
4
5
}

之后我想要:

string{1 2 3 4 5}

在我拥有(新模式)之前:

string{1 
{2} 
{3} 
4 
5}

之后我想要:

string{1 {2} {3} 4 5}

这一行执行您想要的操作:

%s/\string{_[^}]*/=substitute(submatch(0),"n",' ','g')/

它改变了:

foobar
string{1
2
3
4
5
}
foobar

进入:

foobar
string{1 2 3 4 5 }
foobar

如果你给出一个更长的文本示例,以及你想用它做什么,会更容易理解你的问题。如果我理解正确,你可以删除包含\string{this的行上的换行符。

您可以使用:%g/\string{this/j。它在与\string{this模式匹配的每一行上执行j命令。

输入:

some text
string{this
indicate}
more text

转化为:

some text
string{this indicate}
more text

最新更新