This回答说:w !tee
将当前缓冲区写入stdout。为什么以及如何运作?我可以写:x !tee
或:w !cat
吗?在这种情况下,感叹号是什么意思? (我假设它没有强制操作。)它是否仅在tee
命令存在时才有效(不在Windows上)?
答案 0 :(得分:3)
!
告诉vim
它是shell命令而不是文件名。因此:w !tee
或:w !cat
将vim缓冲区作为输入提供给那些命令。他们又将缓冲区内容发送到stdout
。
尝试:w !wc -l
,这会在stdout
打印的缓冲区中显示行数。
您还可以将命令的输出读入vim缓冲区。您可以使用read
命令和shell命令。例如,:read !date
在shell上执行date
命令并将输出发送回vim缓冲区。