一般的な置換プラグイン

概要

このプラグインは標準的でよく使用される基本的な置換機能を提供します。 たとえば大文字を小文字に変えたり、数値を書式化したりします。

使い方

マッチ情報

検索に一致した部分に関する情報で置換する機能です。
${match:information-type} の形式で使用します。
${match:parent-information-type} と、頭に parent- をつけると、そのマッチ情報の親の情報を得ることが出来ます。
名前・テキストに対するマッチの親はファイル、ファイルの親はディレクトリです。
information-type は以下の通りです。

number
この一致が何番目の一致かと言う情報を得ます。 テキストの場合は、同じファイル内での番号。 ファイルの場合は同じディレクトリ内での番号です。
line
一致したテキストの行番号です。ファイル・ディレクトリには使用出来ません。
column
一致したテキストの列番号です。 列は文字単位で計算されます。ファイル・ディレクトリには使用出来ません。
index
一致したテキストの先頭からの位置です。 位置は文字単位で計算されます。ファイル・ディレクトリには使用出来ません。

たとえば ${match:line} とすればマッチ部分が何行目にあるかの情報を取得できます。

文字列変換機能

${string:conversion-type:input-text} の形式で使用し、文字列を機械的に変換できます。 大文字を小文字に変えたり、全角を半角にしたり出来ます。
${string:conversion1-conversion2:input-text} とすることで、多段変換も可能です。 conversion-type は以下の通りです。

length
文字列の長さを取得します。
lower
文字列を小文字に変換します。全角文字も対象です。
upper
文字列を大文字に変換します。全角文字も対象です。
widen
半角文字を全角にします。アルファベット・記号・カタカナなど全て対象です。
narrow
全角文字を半角にします。アルファベット・記号・カタカナなど全て対象です。
hiragana
カタカナをひらがなにします。
katakana
ひらがなをカタカナにします。
simplify
簡体中国語漢字にします。
traditional
繁体中国語漢字にします。

たとえばテキストファイルを検索したとき ${string:narrow:$0} で一致した文字列を可能な限り半角にします。

計算機能

${calc:expression} の形式で使用し、expression を計算できます。 expression には括弧も含めた計算式を記述することが出来ます。
使用できる演算子・記述法は以下の通りです。

########.###
10進数で実数を指定します
0x######
16進数で整数を指定します
0o######
8進数で整数を指定します
0b######
2進数で整数を指定します
X + Y
X に Y を足します。
X - Y
X から Y を引きます。
X * Y
X に Y をかけます。
X / Y
X を Y で割ります。
X % Y
X を Y で割ったあまりを求めます。
X ` Y
X の Y 乗を求めます。
X @ Y
logyX を求めます。
X = Y
X と Y が等しければ 1、そうでなければ 0 になります。
X ! Y
X と Y が異なれば 1、そうでなければ 0 になります。
X < Y
X より Y が大きければ 1、そうでなければ 0 になります。
X > Y
X より Y が小さければ 1、そうでなければ 0 になります。
X | Y
X か Y のどちらかが 0 でなければ 1、そうでなければ 0 になります。
X & Y
X と Y の両方が 0 でなければ 1、そうでなければ 0 になります。
(expression)
計算の優先順位を変更します。

置換子を入れ子にすることで、検索結果を計算に反映できます。
${calc:${file:size}/1024} で、ファイルサイズをキロバイト単位で得られます。

フォーマット機能

上記のファイルサイズをキロバイト単位で得る計算は、端数が少数として残っています。 ファイル名に使用するときにはこの小数部分は要らないことがほとんどです。 そのような用途のために数値をフォーマットする機能があります。
${format:form:number} の形式で使用します。
form は以下にあげる 定義済みのアルファベット一文字+二桁の数字 の形式か、 またはカスタマイズされた書式も使用出来ます。 number は書式化したい文字列です。

Cxx または cxx
数字を通貨として書式化します。先頭に \ や $ がついたり、3桁ごとにカンマが入ったりします。xx に小数部の桁数を指定することも出来ます。
Exx または exx
数値を指数部付きの少数として書式化します。1.34E-10 のようになります。xx に小数部の桁数を指定することも出来ます。
Fxx または fxx
数値を桁固定の少数として書式化します。0.000000000134 のようになります。xx に小数部の桁数を指定することも出来ます。
Gxx または gxx
現在のカルチャーで一般的に使用される書式化方法で書式化します。xx に小数部の桁数を指定することも出来ます。
Nxx または nxx
現在のカルチャーで一般的に使用される書式化方法で書式化します。xx に小数部の桁数を指定することも出来ます。
Pxx または pxx
数値をパーセンテージで表します。0.5 は 50% になります。xx に小数部の桁数を指定することも出来ます。
Dxx または dxx
数値を10進数として書式化します。カンマなどは入らない生の数字に書式化されます。xx に最小桁数を指定することも出来ます。不足分は左から 0 が埋められます。
Xxx または xxx
数値を16進数として書式化します。xx に最小桁数を指定することも出来ます。不足分は左から 0 が埋められます。
0
ゼロ プレースホルダ。最低でも 0 の数と同じだけの桁数になるように書式化します。不足分は左から 0 が埋められます。
#
桁 プレースホルダ。数値に置き換えられますが、桁が不足しても 0 で埋められることはありません。
.
この位置に小数点が来るようにします。
#,0
3桁ごとに桁区切り記号を入れます。
0,
千単位で出力します。同様に 0,, は十億単位です。
%
パーセント記号を表示します。数値もパーセントで出力されます。
E+000
0 の数だけ小数部を残し、指数形式で出力します。
\
次の文字の特殊な意味を値消します。\0 はただの 0 が出力されます。
'ABC' または "ABC"
引用符の中身がそのまま出力されます。
数値が非負のときの書式;負のときの書式
; で区切られた部分がそれぞれの条件のとき書式化に使用されます。
数値が正のときの書式;0のときの書式;負のときの書式
; で区切られた部分がそれぞれの条件のとき書式化に使用されます。

たとえば ${format:#,#.000:1234.56789} は 1,234.567 に置換されます。
ファイルサイズをキロバイト単位で表示するには
${format:0:${calc:${file:size}/1024}} とすればいいことになります。