在Vim中将缓冲区配管到外部命令

我是一个Vim新手。 我想发送当前缓冲区的内容到外部命令的标准输入(可以说邮件)。 我的最终目的是设置一个快捷方式,以便从当前的Vim缓冲区快速发送电子邮件。 我猜这应该是一个微不足道的东西,但我找不到将Vim缓冲区发送到外部命令的方法。 提前致谢。


您可以使用:w !cmd将当前缓冲区写入外部命令的stdin。 来自:help :w_c

:[range] w [rite] [++ opt]!{cmd}

[range]行作为标准输入执行{cmd} (注意'!'前面的空格)。 {cmd}":!{cmd}"一样被执行,任何'!' 被前面的命令|:!|替换 。

一个相关的命令是:%!cmd ,它执行相同的操作,然后用命令的输出替换当前的缓冲区。 所以:%!sort会调用外部排序命令来排序当前缓冲区。


以下是如何从命令行将当前缓冲区发送到外部stdin的示例:

vim -es +"w >> /dev/stdout" -cq! /etc/hosts

这对于脚本编制非常有用。

有关更多命令行技巧,请检查:

  • 如何将整个缓冲区写入命令行的标准输出?
  • 链接地址: http://www.djcxy.com/p/19133.html

    上一篇: Piping buffer to external command in Vim

    下一篇: To switch from vertical split to horizontal split fast in Vim