2013-04-24 45 views
5

假設我們有一些不錯的一大堆文字:如何過濾視覺選擇?

Hello world 

,我們在視覺模式選擇world。然後,我們可以用一個閃亮的命令,這樣一個過濾器可視選擇:

:'<,'>!echo foobar 

然而,這與foobar而不只是world更換整條生產線。爲什麼會這樣,我們怎麼才能取代world

+0

範圍是線性的 – Kent 2013-04-24 16:15:23

+2

請參閱':help visual_example' – 2013-04-24 16:18:44

+0

@evilotto好戲,以前沒有找到它.. – Kent 2013-04-24 16:26:30

回答

6

:!濾波器命令總是工作於整個線(這是一樣古老原始VI,嵌入Ex命令:開始),並且'<,'>範圍也僅指定

您可以使用可敬的vis plugin來實現您的結果;它提供了一個:B命令,將以下命令限制爲可視化選擇的文本。

:'<,'>B !echo foobar 

該插件適用於所有類型的Ex命令;對於:substitute,在選擇範圍內你也可以使用特殊的\%V原子。

+0

感謝您的回覆!我想在插件中使用它。這是否意味着每個用戶都應該安裝vis插件,還是有更好的方法來做到這一點? – 2013-04-24 16:15:29

+0

除非您可以減少使用Vimscript中的簡單子集,否則我會建議將其委託給vis插件。爲什麼重新發明輪子?! – 2013-04-24 16:18:12