Vimでs/正規表現/関数/ substituteで置換後文字列を関数にする方法

テキストエディタ(Vimやその他)

今回は、Vimの置換、sコマンドです。
sコマンドは、substituteコマンドの略ですが、長くて覚えにくいので、sしか知らない人もいるでしょうね。

そのsコマンド。

基本の使い方はこれです。

s/置換前正規表現/置換後文字列/

今回は、置換後文字列に関数を指定する方法。
つまり、

s/置換前正規表現/関数/

こういうことです。

ちょっと使ってみます。

WindowsだったらPowerShell等で適当に文字列をこしらえます。
(LinuxやUNIXならseqコマンドとかで)


1から100までの数列ができました。

これをgコマンドを使って、

10 x 10のマトリクスに変形。

実験用テキストができたので、これをs///で置換してみます。

s/置換前正規表現/関数/

関数を指定するには、
\=
を使います。

では、数字の桁数を全部2桁に揃える置換をやってみます。

:%s/\v(\d)/\=printf("\%02x", submatch(1))/g

できました。

コメント

タイトルとURLをコピーしました