如何让外部脚本修改当前的vim缓冲区

时间:2013-06-07 02:54:15

标签: vim buffer

假设我在Vim中编辑somefile.txt。有没有办法运行保存在文件some_perl_script.pl中的外部脚本,并让脚本修改当前打开的缓冲区?

抱歉,我搜索过,但我使用过的关键字反响过于广泛。谢谢!

2 个答案:

答案 0 :(得分:4)

假设some_perl_script.pl从标准输入中获取文本并将文本返回到标准输出,Vim允许您将其用作“过滤器”:

:%!some_perl_script.pl

请参阅:help filter

答案 1 :(得分:1)

假设some_perl_script.pl在stdin上获取输入并在stdout上产生输出。

您可以将formatprg选项与gq一起使用。键入gq时,将使用formatprg设置的程序格式化选定的行。

所以你可以把以下内容放在你的vimrc中(假设你是如何运行some_perl_script.pl的)

set formatprg=some_perl_script.pl

然后在缓冲区中运行gggqG以格式化整个缓冲区。

查看:h formatprg:h gq