vim在数字值前添加字符

时间:2019-05-05 16:50:35

标签: vim

我有一些琴弦,

void RationalNum::setNumerator(int n)
{
  numer = n; // I changed the parameter name to avoid confusion with the member
  cout << "in setNumer, the numer is: " << numer << endl;
  //reduce(newNumer); //Not using yet
}

我想要它的输出,

- astropy=3.1.2=py36h7b6447c_0
- ptyprocess=0.6.0=py36_0
- qt=5.9.7=h5867ecd_1
- xlwt=1.3.0=py36h7b00a1f_0
- lzo=2.10=h49e0be7_2

我当时想阻止这些字符串和- astropy==3.1.2=py36h7b6447c_0 - ptyprocess==0.6.0=py36_0 - qt==5.9.7=h5867ecd_1 - xlwt==1.3.0=py36h7b00a1f_0 - lzo==2.10=h49e0be7_2 + shift并将:更改为=。但是还有另一个==符号。因此,我想知道如何在数字字符前添加=符号。

1 个答案:

答案 0 :(得分:6)

似乎您的问题是您只想更改第一个等号,而不更改第二个等号。

您可以使用Vim的替代命令来做到这一点。 默认情况下,该命令将仅更改任何给定行中的第一个匹配项,因此您希望保持这种方式。

为您执行此操作的实际命令为:

  

:%s​​ / = / ==

有关更多信息,您可以通过运行以下命令来阅读命令的帮助:

  

:help:s


如果要在数字前更改=的所有值(以回答原始问题),可以将搜索模式更改为先有一个等号然后是一个数字,并在第一个等号之前添加另一个等号。这种替代看起来像这样:

  

:%s​​ / = \ d / =&/ g

要分解上一个命令:

%-在整个文件上运行命令。

s-运行替代命令

/-启动搜索模式。

=-查找等号字符。

\d-查找任何数值(1、143、94 ...)

/-开始替换值。

=-在返回值后加上等号。

&-将搜索模式附加到更改后的值。

/g-全局运行此命令,这意味着更改所有匹配项,而不仅仅是每行中的第一个匹配项。