如何操作搜索中的字符大小写并在vim中替换?

时间:2012-05-24 21:40:19

标签: vim replace

例如,我有:

  double foo = 0.0;  
  double bar = 0.0;

我想编写某种搜索来查找每个变量并将其更改为:

  double Foo = 0.0;  
  double Bar = 0.0;

我不想一次做这一个变量(例如:%s / foo / Foo / g),而是一次性完成,接近

:%s/  double \(\w\+\)/  double \1/c 

(并以某种方式对\ 1的第一个字符进行首饰化)

4 个答案:

答案 0 :(得分:3)

在replace子句中使用\u前缀进行匹配:

一次一个:

:%s/ double \(\w\+\)/ double \u\1/c

一次性全部:

:%s/ double \(\w\+\)/ double \u\1/g

如果您想使整个匹配大写,请使用\U\E分隔符:

:%s/ double \(\w\+\)/ double \U\1\E/g

答案 1 :(得分:1)

使用\ u

%s/ double \(\w\+\)/ double \u\1/c

答案 2 :(得分:0)

无法让对方工作,这对我有用:

:%s/\(double \)\<\(\w\)\(\w*\)\>/\1\u\2\L\3/g

答案 3 :(得分:0)

s:\(\<double\>\)\(\<\w\+\>\):\1 \u\2:g

或sume-such。