2016-11-16 33 views
-1

我試圖搜索/通過線,並通過線的第二範圍中的一個範圍替換替換,通過單個命令。搜索並通過多個範圍在vim

Find and replace strings in vim on multiple lines說我應該能夠做到這一點是這樣的:

:2,10s/\n/ /g | 12,18&&

但只是給了我:關於第一個範圍1線(如預期),以及 9換人E16:用於第二無效範圍

爲什麼沒有第二個範圍的工作?

我也試着命令,如:

:2,10s/\n/ /g | :12,18&&

具有相同的結果。

回答

0

哈哈...好了,在第一範圍用空格代替換行導致我的第二範圍內不存在的,因爲線12-18更改爲類似3-9。解決辦法是翻轉的範圍,以便在後面的文件的範圍內是第一位的命令:

:12,18s/\n/ /g | 2,10&&

0

倒車範圍是有幫助這裏,另一種方法是設置馬克爲後續範圍。 VIM自動適應那些用於增加/刪除:

:12mark a | 18mark b | 2,10s/\n/ /g | 'a,'b&& 

一般來說,最好避免這樣的序列;通常,一個:global命令可以執行迭代你(這也有自動線自適應)。