下面是命令刪除第一N
字符在vi:刪除幾個選定的字符從文件在vi/vim編輯器
:%s/^.\{N}//g
不過,我不明白的^.\{N}
意義;誰能解釋每個字符的含義?
如何擴展此命令以從行中刪除中間字符?
例如,刪除第四到第50個字符由線
下面是命令刪除第一N
字符在vi:刪除幾個選定的字符從文件在vi/vim編輯器
:%s/^.\{N}//g
不過,我不明白的^.\{N}
意義;誰能解釋每個字符的含義?
如何擴展此命令以從行中刪除中間字符?
例如,刪除第四到第50個字符由線
給定範圍這裏是正則表達式的一部分的解釋
^
是啓動的最線錨定。
.
匹配任何字符。
N
指示字符被用來組計數先前的令牌將被匹配
{}
的數量。例如,你可以使用它作爲{1, 9}
所以它說,From the beginning of the line, match N characters
和其餘的是VIM的東西。
^
是起始行錨; .
是全球比賽,{N}
重複前一場比賽N次。
要刪除第4至第50個字符,請使用:%s/^\(.\{4}\).\{46}/\1/g
。
但是,它可能更容易使用矩形選擇模式:從正常模式,移動到開始位置,然後按Ctrl+V
,您可以通過移動光標創建一個矩形選擇。
':幫助pattern.txt' – sehe
作爲附錄其他的答案,你可以指定行的範圍在命令的開始。對於整個文件,使用':%s'中的%。例如,要執行第7至47行的替換,可以使用':7,47s',然後使用命令的其餘部分。有關更多信息,請參閱':help:range' – Conner