【问题标题】:How to filter visual selection?如何过滤视觉选择?
【发布时间】:2013-04-24 16:01:20
【问题描述】:

假设我们有一些不错的文本:

Hello world

我们在可视模式下选择world。然后我们可以使用像这样的闪亮命令过滤视觉选择:

:'<,'>!echo foobar

但是,这会将整行替换为 foobar 而不仅仅是 world。为什么会这样,我们如何才能替换 world

【问题讨论】:

  • :help visual_example
  • @evilotto 不错的把戏,之前没找到..

标签: vim


【解决方案1】:

:! 过滤器命令始终在整行上工作(这与原始 vi 一样古老,嵌入 Ex 命令 :),'&lt;,'&gt; 范围也只指定

您可以使用可敬的vis plugin 来实现您的结果;它提供了一个:B 命令,将以下命令限制为可视选择的文本。

:'<,'>B !echo foobar

该插件适用于所有类型的 Ex 命令;不过,对于选择中的:substitute,您也可以使用特殊的\%V 原子。

【讨论】:

  • 感谢您的回复!我想在插件中使用它。这是否意味着每个用户都应该同时安装 vis 插件,还是有更好的方法呢?
  • 除非您可以将使用减少到一个简单的子集,您可以在 Vimscript 中轻松实现自己,否则我建议将其委托给 vis 插件。为什么要重新发明轮子?!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-10
  • 1970-01-01
  • 1970-01-01
  • 2016-02-21
  • 2011-03-28
  • 2023-04-03
相关资源
最近更新 更多