vi:如何使用一行作为命令?

vi:如何使用一行作为命令?
cat a.txt
echo hi
echo hu
echo ha

问:当用 vi 打开 a.txt 时,如何执行 ex.: 第二行?

所以“vi a.txt”->然后SOMEMAGICCOMMAND->然后“echo hu”作为命令执行。如何?

答案1

执行当前行并捕获文件中替换该行的输出

:. !sh

执行第 2 至 4 行并捕获文件中的输出来替换这些行

:2,4 !sh

执行整个文件并捕获文件中的输出替换所有行

:% !sh

与上面相同,但不捕获文件中的输出,只是打印它

:.w !sh
:2,4w !sh
:%w !sh

答案2

假设你正在使用 vim

我知道如果您选择包含文本 ( Shift+ V) 的行,然后给出命令:

:!sh

它将执行所选行并用结果替换它。

例子

您可以在下面的演示中看到发生的情况。

                      演示页面

相关内容