Vim

在vim / sed中用一個空行替換多個空行

  • July 13, 2020

問題或多或少說明了一切。我知道這/^$/d將刪除所有空行,但我看不出怎麼說“用一個空行替換兩個或多個空行”

有任何想法嗎?

如果您不是為了其他用途而觸發 vim 或 sed,cat 實際上有一個簡單的內置方法來折疊多個空行,只需使用cat -s.

如果您已經在 vim 中並想留在那裡,您可以通過內部搜尋和替換來執行此操作::%s!\n\n\n\+!^M^M!g(^M 是換行符的視覺表示,您可以通過點擊Ctrl+輸入v``Enter),或者自己保存只需對 cat: 進行砲擊即可打字:%!cat -s

用於\n指示搜尋模式中的換行符。在替換文本或反向引用中使用Ctrl+ 。M參見:help pattern:help sub-replace-special(連結自:help :s)。

%s/\(\n\n\)\n\+/\1/

引用自:https://unix.stackexchange.com/questions/12812