假設我們有一些不錯的一大堆文字:如何過濾視覺選擇?
Hello world
,我們在視覺模式選擇world
。然後,我們可以用一個閃亮的命令,這樣一個過濾器可視選擇:
:'<,'>!echo foobar
然而,這與foobar
而不只是world
更換整條生產線。爲什麼會這樣,我們怎麼才能取代world
?
假設我們有一些不錯的一大堆文字:如何過濾視覺選擇?
Hello world
,我們在視覺模式選擇world
。然後,我們可以用一個閃亮的命令,這樣一個過濾器可視選擇:
:'<,'>!echo foobar
然而,這與foobar
而不只是world
更換整條生產線。爲什麼會這樣,我們怎麼才能取代world
?
的:!
濾波器命令總是工作於整個線(這是一樣古老原始VI,嵌入Ex命令與:
開始),並且'<,'>
範圍也僅指定線。
您可以使用可敬的vis plugin來實現您的結果;它提供了一個:B
命令,將以下命令限制爲可視化選擇的文本。
:'<,'>B !echo foobar
該插件適用於所有類型的Ex命令;對於:substitute
,在選擇範圍內你也可以使用特殊的\%V
原子。
感謝您的回覆!我想在插件中使用它。這是否意味着每個用戶都應該安裝vis插件,還是有更好的方法來做到這一點? – 2013-04-24 16:15:29
除非您可以減少使用Vimscript中的簡單子集,否則我會建議將其委託給vis插件。爲什麼重新發明輪子?! – 2013-04-24 16:18:12
範圍是線性的 – Kent 2013-04-24 16:15:23
請參閱':help visual_example' – 2013-04-24 16:18:44
@evilotto好戲,以前沒有找到它.. – Kent 2013-04-24 16:26:30