読者です 読者をやめる 読者になる 読者になる

Vimでテキスト全体の特定箇所にある大文字を小文字に置換する

グループにマッチした部分文字列を置換することまでは思いついたけど、置換後のパターンにつけるメタ文字がわからなかったので情報共有がてら。


例えばダブルクォーテーションに囲まれた大文字を小文字に変換したいとして、

"GOD"
"USA"
"JAPAN"
"MONEY"
"I AM i8"

調べていくと下記のように書けばいいことがわかった*1

%s/"\([A-Z].*\)"/"\l\1"/g

しかし、これだと先頭の一文字しか小文字に変換されない・・・。

"gOD"
"uSA"
"jAPAN"
"mONEY"
"i AM i8"


悩むこと30分ぐらい。メタ文字が間違っていたみたい。
「\l」としていたところを、「\L」とすればいいだけでした*2

%s/"\([A-Z].*\)"/"\L\1"/g
"god"
"usa"
"japan"
"money"
"i am i8"