在vim中阅读所选文本

时间:2015-04-09 11:35:17

标签: bash vim

我有以下bash脚本(play.bash):

#!/bin/bash
pico2wave -l=en-US -w=/tmp/test.wav "$1"
aplay /tmp/test.wav
rm /tmp/test.wav

我想用它来阅读vim编辑器中的所选文本。 以下不起作用

:'<,'>w !bash play.bash

命令执行,但我没有听到。

我只想在不离开vim窗口的情况下听到文字。

这可能吗?

1 个答案:

答案 0 :(得分:3)

在vim中使用!命令时,您的选择将通过标准输入传送到您的脚本,而不是作为命令行参数提供。

一个简单的解决方案是修改脚本,使其从标准输入读取:

xargs pico2wave -l=en-US -w=/tmp/test.wav

xargs从标准输入读取,然后使用数据作为命令行参数调用pico2wave,删除换行符。