2016-11-16 30 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命令可以执行迭代你(这也有自动线自适应)。