从vim到外部程序的文本的矩形区域?

我正在编辑vim中的一个大文本数组,并且我想在它的一个子列上进行计算。

编辑文件的简单示例:

name value name   saturation 
red  5     green  2
blue 7     yellow 7 
other text

我想通过外部程序calc.pl管理第4列,calc.pl用输入中的新数字替换数字,例如:

 name value name   saturation
 red  5     green  2.4
 blue 7     yellow 7.14
 other text

当我在列4中选择矩形,使用v.motion和!perl calc.pl时,整行将被传送到calc.pl,而不仅仅是矩形。

解决方法是:将矩形切割为临时文件,在临时文件上运行calc.pl,然后将输出读取为矩形。

在vim中有没有直接的解决方案,而无需切割/外壳/粘贴?


你可以试试Charles Campbell的vis插件

使用ctrl-v选择一列,然后将外部过滤器应用于该列。 ctrl-v ..move.. :B !sort

另一个可能适合你的插件是Christian Brabandt的NrrwRgn。

使用:NarrowRegion缩小基于线的选择范围,或者直观地选择范围并按nr

在暂存缓冲区中只需保存它,并将更改复制到原始文件中。 这只是一个非常简单的帮助。 您应该阅读插件提供的帮助。 请参阅:h NarrowRegion

链接地址: http://www.djcxy.com/p/3185.html

上一篇: Piping rectangle region of text from vim to an external program?

下一篇: What are all the NHibernate HiLo generator params?