2012-08-24 24 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