假设我们有一些很好的文本:
Hello world
Run Code Online (Sandbox Code Playgroud)
我们选择了world
视觉模式.然后我们可以使用像这样的闪亮命令过滤视觉选择:
:'<,'>!echo foobar
Run Code Online (Sandbox Code Playgroud)
然而,这将取代整个线foobar
而不仅仅是world
.为什么会这样,我们怎样才能取代world
?
该:!
过滤器命令总是工作在整个线(这是一样古老的原始VI,包埋实施例的命令,与开始:
),以及'<,'>
范围也仅指定行.
您可以使用古老的vis插件来实现您的结果; 它提供了一个:B
命令,将以下命令限制为可视选择的文本.
:'<,'>B !echo foobar
Run Code Online (Sandbox Code Playgroud)
该插件适用于所有类型的Ex命令; 但是:substitute
在选择范围内你也可以使用特殊\%V
原子.