假设我们有一些很好的文本:
Hello world
我们在视觉模式中选择world
。然后我们可以使用像这样的闪亮命令过滤视觉选择:
:'<,'>!echo foobar
但是,这会用foobar
而不是world
替换整行。为什么会这样,我们如何才能替换world
?
答案 0 :(得分:7)
:!
过滤器命令始终适用于整行(这与原始 vi 一样旧,嵌入 Ex命令以:
开头,'<,'>
范围也只指定行。
您可以使用古老的vis plugin来实现您的结果;它提供:B
命令,将以下命令限制为可视选择的文本。
:'<,'>B !echo foobar
该插件适用于所有类型的Ex命令;对于选择中的:substitute
,您也可以使用特殊的\%V
原子。