VI 搜索并替换两边带有数字的符号

问题描述 投票:0回答:1

我有一个大型数据集,其中一些值以 -1.00000e-00 表示法编写,其他值以 -1.00000-00 表示法编写。我想用“e-00”替换所有“-00”符号。我无法找到/用“e+”和“e-”替换所有“+”或“-”符号

  1. 影响已经采用正确表示法的值
  2. 影响负数的符号

我想搜索两边都有数字的“+”或“-”,并将“+”替换为“e+”,将“-”替换为“e-”。

我尝试使用 :%s/\d-\d/e- 进行搜索和替换,但两边的数字都被擦除了。 有没有办法搜索一个模式,并且只替换部分模式?

regex replace vi
1个回答
0
投票

我想你想尝试使用宏:

宏是在 Vi 中执行某些操作并能够记录它并重复 N 次的方法。

要开始录制宏,您必须处于正常模式。

这就是你要做的: 0.进入正常模式

  1. 输入
    q
    ,这将开始录制宏
  2. 为您的宏命名,在本例中为
    e
  3. 现在您的宏正在录制,您可以运行任何系列命令,在您的示例中
    看来您想在行的开头搜索 e- 或 e+ 并替换。基本上按你平时做的做。
  4. 完成录制后,按
    q
    将停止,现在您的宏已保存,在这种情况下,您可以通过执行
    @{macro_name}
    @e
    来调用它。

通常我只是执行

gg
,然后在正常模式下执行类似
200@e
的操作,以运行我的宏 200 次。

尝试一下,我想它应该能达到你想要的效果。

© www.soinside.com 2019 - 2024. All rights reserved.