2

ファイル内で特定のパターンのすべての出現を検索して置換し、toupper()一致するたびに呼び出しようとしています。実際には、手作業でこれを行うことができなかったということはそれほど多くありませんが、Vim のスキルを向上させ、Vim にこれを行わせる (簡単な) 方法を見つけたいと思っています。私は単純だと言います。さもなければ忘れてしまいます。

の Vim ヘルプを読むと、次のs/ようなことができるはずです。

:%s/\vfunction ([a-z0-9_]+)/\="function " . toupper("\1")/g

(すべての関数定義名を大文字にしていると仮定します)。

ただし、これは実際には関数名を制御文字に置き換えるだけ^Aです。正規表現でキャプチャ グループを参照するにはどうすればよいですか?

4

2 に答える 2

3

申し訳ありません。もっとよく読むべきです。とにかく、削除するのではなく、自分の質問に答えます。submatch(n)キャプチャ グループを参照するには、次を使用する必要があります。

:%s/\vfunction ([a-z0-9_]+)/\="function " . toupper(submatch(1))/g
于 2012-10-29T12:35:15.840 に答える
1

\U置換パターンで使用します。

:%s/\vfunction ([a-z0-9_]+)/function \U\1/
于 2012-10-29T12:37:58.137 に答える