2012-08-24 23 views
2

我发现substitue在Vim有一个范围参数:如何用Vim中的视觉选择替代?

:[range]s/pattern/sring/[c]/[g]/[e]/[i]/[I]/[p] 

但我知道这将是得心应手,让替代仅发生在视觉选择。

任何人都知道该怎么做?

回答

4

是的,你可以做到这一点。

经过视觉选择后,按:会给你:'<,'>,'<,'>[range]的一部分。

然后做这样的替代品:

:'<,'>s/foo/bar/g 
+0

+1功效神奇! – mko

+0

什么是正常范围参数? '2,5s/foo/bar/g'是否意味着从第2行到第5行? – mko

+1

你说得对。请参阅':help range'。 – romainl

1

要的范围限定于视觉线,在'<,'>范围内做这项工作。尽管如此,对于字符或分段选择来说,这还不够。您需要修改正则表达式或使用vis.vim插件;否则,选择外的字符(但在行内)也会受到影响。

查找Vim的提示维基完整的讨论:http://vim.wikia.com/wiki/Applying_substitutes_to_a_visual_block

+0

+1供参考,谢谢 – mko