如何在 bash 中执行 Vim 选择或范围而不替换它?

如何在 bash 中执行 Vim 选择或范围而不替换它?

我想在 vim 中选择一些文本,然后在 bash 中执行它。我知道以下步骤:

  1. V使用或选择文本v
  2. :!!

但是,这会用命令的输出替换选择。如果我不想这样怎么办?

答案1

输入:w如下命令:

:w !command

当你输入它时,它将显示如下内容:

:'<,'>w !command

:help :w_c

答案2

vim 8.0,您可以选择一系列行并运行:terminal bash。这将打开一个bash以您选择的内容作为标准输入运行的终端。

:terminal node,,:terminal ruby似乎:terminal python也运行良好。

答案3

每 6-8 个月我都需要这个,忘记怎么做了,最后就到这里。这是我将来想要的答案:

要通过寄存器在转义的 shell 中运行从 vim 中可视化选择的文本:

  • 通过键入将选择复制到寄存器“a” "ay
  • 使用以下命令打开 vim 命令模式!<CTRL-r>a

(如果您懒的话,可以跳过命名寄存器"a并使用默认寄存器)0


视觉说明:

Vim 可视化选定文本

类型"ay

命令模式,<CTRL-r>a

vim shell escape 运行 bash 命令

相关内容