0

我想使用 vim 用其他东西替换 Makefile 中的所有目标。我确信这可以通过正则表达式实现,但我还没有弄清楚语法。

例如,如果我有

foo.o: $(src)/foo.c

我想将其更改为:

SRC += $(src)/foo.c

我看到 vim 搜索:

/\:

给我结肠。但我还不确定如何获得单词的其余部分(即 foo.o)。

4

1 回答 1

2

未测试。键入以下命令,您将应用全局更改,将文本更改为冒号,并SRC +=在行匹配正则表达式^[^[:space:]:]+

:g/\v^[^[:space:]:]+/normal ^cf: SRC +=

\v是非常神奇模式的开关(您大部分时间都想使用它)。^表示^方括号内的行首不表示任何此字符。在这种情况下,非空格和非冒号+表示前一个字符类的一倍或多倍。最后,普通命令会执行您想要的替换。

我建议您将光标放在要更改的行上并尝试输入: ^cf: SRC +=以查看是否是您要执行的操作

于 2013-05-24T18:29:11.067 回答