簡體   English   中英

如何刪除vim中特定列的回車?

[英]How to remove carriage return at specific column in vim?

我在vim中有從pdf文件轉換的文本。

我遇到的問題是該段落中的每一行都以回車結尾,並且在各段落之間沒有空行來區分每個段落的開頭或結尾。 因此,如果我將文字放在Microsoft Word中,則無法縮小文字並將段落環繞。

如果段落之間有一個空行,這將很容易:

%norm vipJ

但是由於沒有,我想僅在最后一個字符是字母且列等於或大於65的情況下才刪除多余的回車符。 我知道如何搜索和替換任何字母,

但是我的問題是, 僅當行的最后一個字符在列> 65上時,才可以在vim中執行搜索和替換嗎?

更新:到目前為止,我設法做到了:

:%s/\%>65v\n//g

這樣做的問題是,由於正則表達式從該段的頂部替換為最后一行的時間,所以該行已經“換行”了,很顯然該列將超過65。我認為應該執行搜索並從文本底部到開頭相反地替換正則表達式。 我怎樣才能做到這一點?

/\\%>65c\\r匹配第65個字節字符之后的所有回車符。

請參閱:help以獲取%c%v 還要注意\\r (CR)和\\n (EOL)之間的區別。

好吧,您可以在段落之間添加一條線。

%s/\\%<65c\\n/\\r\\r/g在少於65個字符的任何行中添加換行符。

PS。 \\ n和\\ r之間的切換讓我感到困惑,但顯然這是正確的。... 為什么\\ ra Vim是換行符?

暫無
暫無

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

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