从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?