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

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

我在这篇文章中也有同样的问题。

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

但这篇文章中接受的答案对我不起作用。该命令没有在 vim 中拾取选定的文本。

我错过了什么?

答案1

您可以使用此命令将当前可视选择中的行传送到bashshell:

:'<,'>w !bash

shell 将从其标准输入读取脚本,该标准输入是从 Vim 获取行的管道。

请注意,这将使用视觉选择周围的整行,因此如果它不是从第一个字符开始或以最后一个字符结束,则它们仍将作为外部命令运行的一部分发送。

(另一个答案大部分都是正确的,只是没有提到管道到 shell才能执行。我对:!!那里的提及也有些困惑。

如果您想运行一个小的、简短的命令(通常是一行就可以完成的命令),您也可以这样做:

  1. 将其拉出。如果是可视选择的,只需输入y。如果是当前行,在正常模式下使用yy
  2. 类型:!开始运行外部命令。
  3. 类型Ctrl-R ",在命令行中插入默认寄存器的内容。
  4. 最后,按回车键执行命令。

相关内容