用shell命令的输出替换vim选择

时间:2011-08-03 19:49:27

标签: vim curl pipe external

我需要将vim中的一些选定文本作为参数值传递给curl命令。例如。我需要能够运行

curl -sSd css="body { border-radius: 5px; }" http://prefixr.com/api/index.php
来自vim的

显然,“body {border-radius:5px;}”部分将是动态的。通常,在vim中选择视觉模式。

如何获取所选文本并将其作为卷曲参数传递?

4 个答案:

答案 0 :(得分:16)

您可以使用:!命令通过外部程序过滤所选文本。 文本被送到stdin并用stdout的结果替换。

在这种情况下,您必须使用cat和命令替换来将行作为参数提供给curl,如下所示:

:'<,'>!curl -sSd css="`cat`" http://prefixr.com/api/index.php

答案 1 :(得分:1)

目前无法测试此 所以不能100%确定它是否可行

esc ,然后是

:r ! curl -sSd="`cat`" http://prefixr.com/api/index.php`

答案 2 :(得分:1)

选择一行或多行并使用:!您可以将这些行传递给命令,例如:

所以使用sort命令对整个文件进行排序,试试这个:ggVG!sort,在编辑器中看起来应该是这样的:

  

     

C

     

A

     

: '&LT;,' &GT;排序

答案 3 :(得分:0)

对于没有免费换行符的单词,请参阅此示例以大写选定的文本:

select-region c Control-r = system("perl -pe '$=uc($)'", @")

说明:选择区域,c是(更改选择),C-r执行表达式。 注意:美元是美元下划线,但在发布后不会显示下划线。