我有一个值表(实际上是用LaTeX标记编写的),我只能使用Ctrl+Q
% Select the second column only ....
1.75130211563 & 0.0299693961831 \
1.72144412106 & 0.0181406611688 \
1.92102386609 & 0.0247758598737 \
1.56512790839 & 0.0137107006809 \
1.75263937567 & 0.017155656704 \
1.99501744437 & 0.39550649953 \
1.96862597164 & 0.030198328601 \
...
我只想减少所选数字的小数位数(例如,对于所选的每个数字,我应用round(NUMBER * 100)/100
以获得四舍五入到小数点后2位的数字)。要做到这一点,我需要首先有一个变量来引用NUMBER
(该行上的数字),并将当前选择替换为输出。
我该怎么做?
如果这是不可能的,我可以复制列到一个实际的电子表格程序,并在那里编辑它,但我如何将它粘贴回原位?
更新:我已经接受了答案。它不像我希望的那样整洁,但它确实有意义。谢谢!
另一个更新:要从外部电子表格粘贴一列,将该列粘贴到:new
缓冲区,使用Ctrl+Q
选择数据并将其拉入寄存器。移动到数据表的最上面一行和适当的列,并使用P
粘贴。
你在找这个吗?
:'<,'>s#%Vd*.d+#=round(str2float(submatch(0))*100)/100#g
这似乎可以工作:
:'<,'>:s/d+.d+/=printf("%.2f", str2float(submatch(0)))/
。直观地选择第一列并发出上面的命令。
% Select the second column only ....
1.75 & 0.0299693961831 \
1.72 & 0.0181406611688 \
1.92 & 0.0247758598737 \
1.57 & 0.0137107006809 \
1.75 & 0.017155656704 \
2.00 & 0.39550649953 \
1.97 & 0.030198328601 \