我可以将字符串作为stdin传递给来自vim的系统调用吗?

Chi*_*ogg 3 vim stdin

我想从vim(:help :!)运行系统命令,我想将字符串变量的内容作为stdin传递给该命令.

我已经知道我可以将当前缓冲区中的行作为stdin传递(请参阅参考资料:help :w_c).但我不想修改当前的缓冲区,我不想创建一个新的缓冲区.

我知道我可以将字符串写入临时文件,然后将该文件作为输入进行管道并删除它.现在,这是我知道的应用程序的最佳解决方案.但是,首先避免创建文件会更清晰.

可以吗?

Ken*_*ent 6

所以基本上,你有一个变量,比方说,一个字符串,你想把这个变量传递给外部命令,并在变量而不是缓冲区中获取返回值.

如果以上是正确的,您可以这样做,请参阅以下示例:

let s="vim is good"
let r=system("sed 's/good/the best/'",s)
echo r
"display vim is the best
echo s
"display vim is good
Run Code Online (Sandbox Code Playgroud)