我有一个值表(实际用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
粘贴。
答案 0 :(得分:3)
你在找这个吗?
:'<,'>s#\%V\d*\.\d\+#\=round(str2float(submatch(0))*100)/100#g
答案 1 :(得分:1)
这似乎有效:
:'<,'>: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 \\