[英]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.