我想从vim(:help :!)运行系统命令,我想将字符串变量的内容作为stdin传递给该命令.
我已经知道我可以将当前缓冲区中的行作为stdin传递(请参阅参考资料:help :w_c).但我不想修改当前的缓冲区,我不想创建一个新的缓冲区.
我知道我可以将字符串写入临时文件,然后将该文件作为输入进行管道并删除它.现在,这是我知道的应用程序的最佳解决方案.但是,首先避免创建文件会更清晰.
可以吗?
所以基本上,你有一个变量,比方说,一个字符串,你想把这个变量传递给外部命令,并在变量而不是缓冲区中获取返回值.
如果以上是正确的,您可以这样做,请参阅以下示例:
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)