2010-10-02 58 views
6

我想申请一个搜索和替换,在行和列的给定范围的文本文件只有这样的工作正则表达式替换:搜索和范围的行和列的

AAABBBFFFFBBBAAABBB 
AAABBBFFFFBBBAAABBB 
GGGBBBFFFFBHHAAABBB 

对于例如,我想与管线1范围YYY取代BBB至2,从塔4至6,然后获得该输出:

AAAYYYFFFFBBBAAABBB 
AAAYYYFFFFBBBAAABBB 
GGGBBBFFFFBHHAAABBB 

有一种方法用Vim做呢?

回答

11
:1,2 s/\%3cBBB/YYY/ 

\%3c意味着第三列(见:help /\%c或多个全球:help pattern

+0

该列是第四个::1,2s/\%4cBBB/YYY / – aleroot 2010-10-03 11:25:18

4

如果这始终是要替换的第一个,根本就没有指定/ G

:1,2s/BBB/YYY/ 

将正常工作。

或者,如果您需要准确指定要替换的列,则可以使用\%Nv语法,其中N是虚拟列(因为它看起来是列,所以选项卡是多列,所以使用c而不是v)列)

在线路1和更换第二组B的2个可以与进行:

:1,2s/\%11vBBB/YYY/ 
+0

'\%v' vs'\%c' ...由他来告诉我们。 – Benoit 2010-10-02 18:46:06