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