2013-10-14 43 views
1

我想展開行,以便我們可以將它們從具有強行換行的行切換到不換行。在崇高文本中展開文本2

具體來說,這意味着連續運行的非空白行應連接在一起基本上任何\n任何一邊沒有空白應該被替換爲一個空格。其他linebreaks不應該感動。

我覺得它應該是一個搜索和替換搜索字符串,如(?!\n)\n(?!\n) - >,但這不起作用,因爲它不匹配任何東西。

是否有ST2內置命令?

+1

我總是這樣爲CMD +選擇Q,我思其想加入線在編輯菜單。絕對是內置的。 – flow

+0

我之前通過將所有換行轉換爲空格,然後將所有雙空格更改回換行符做了類似的事情。當然,這隻有在你知道文本中沒有任何雙重空格的情況下才有效(這一點很容易找到)。 – MattDMo

回答

3

任何\ n,其中沒有空格兩側

(?<!\s)\n(?!\s) 

其他換行符不應該得到感動。

(?<!(?:\s|\n))\n(?!\s) 

替換爲 ''

+0

啊!錯過了不匹配後視標記'(?<!...)'。謝謝。 –

1

正如@flow提到的,有內置插件完成這項任務。只需選擇要加入的線路,然後按Ctrl + J

而你的方式也應該起作用。只有你錯過了一點。它應該是(?<!\n)\n(?!\n)

+0

不幸的是,加入*所有* linebreaks,使我的文本一個長段。 –

+0

使用多個選擇:如果您不希望刪除段落之間的空行,請選擇每個段落,錯過最後一行。然後你可以使用加入線,或者如果你想要一些其他分隔符,分割成線,然後按結束和刪除。 – deltab

0

以下解決方案對於從具有80列的控制檯日誌複製的文本效果最佳。如果行觸及最後一列,它只會刪除\n

查找:

(.{80})\n

替換:

$1