我在vim中编辑一个大文本数组,我想在它的一个子列上进行计算.
编辑文件的简化示例:
name value name saturation
red 5 green 2
blue 7 yellow 7
other text
Run Code Online (Sandbox Code Playgroud)
我想通过外部程序calc.pl来管道第4列,calc.pl用输入中的新数字替换数字,例如:
name value name saturation
red 5 green 2.4
blue 7 yellow 7.14
other text
Run Code Online (Sandbox Code Playgroud)
当我在第4列中选择矩形时,使用v.motion和!perl calc.pl,整条线将通过管道输送到calc.pl,而不仅仅是矩形.
解决方法是:将矩形切割为临时文件,在临时文件上运行calc.pl,然后将输出作为矩形读取.
在vim中是否有直接的解决方案,无需切割/外壳/粘贴?
在 vim 中,vip 选择“内部段落”:help v_ip,但它的用途有限。
vim 段落边界是硬编码的,一个段落由 2 个或更多空行分隔。:帮助段落
一些像 .IP 这样过时的 marcos 似乎也支持作为段落分隔符,但它们都是硬编码的。
我想指定我自己的段落分隔符,以便在 vim 中轻松选择文本段落。
就像使用正则表达式拆分器的段落模式下的 perl 一样。
我尝试将段落设置为由空行或大括号分隔: :set Paragraph+={ cpoptions+={ 但没有按文档工作,大括号被 'vip' 选择命令忽略。
我想要的解决方案应该适用于所有段落命令,如 vip、vap、dip、dap、{,}。
vim ×2