簡體   English   中英

如何使用vim文本編輯器刪除自動換行?

[英]How remove text wrap using vim text editor?

我正在嘗試編寫一個vim腳本來刪除文本換行,我正在使用以下代碼,但它未提供確切的輸出。 例如\\ string {this表示換行符}如果“ this”出現在第一行中,“ indicate”出現在第二行中等等,那么我如何刪除文本換行。 可能嗎?

:%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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM