ssmacro.replace コマンド
ssmacro.replace コマンド
ssmacro.replace コマンドは、ssmacro マクロファイル内で使用できる置換コマンドです。
正規表現を使用する場合は、RegExp が使用されます。
パラメータ
- find 文字列 (検索文字列. 指定なしはエラーとなる)
- replace 文字列 (置換文字列. 指定なしはエラーとなる)
- all [true|false] (置換範囲(trueは全範囲). 指定なし or パラメータ異常時は 選択範囲)
このフラグは、検索開始位置および検索範囲を示すものであって、全てを置換するフラグではないことに注意してください。
- reg [true|false] (正規表現(trueは正規表現を使用). 指定なし or パラメータ異常時は 正規表現を使用しない)
- flag 文字列 (正規表現を利用する際のパラメータ. チェックされない)
RegExpのフラグにそのまま使用されます。
例
まず、簡単な マクロファイル(マクロファイルの詳細は、こちらを参照) を作成します。
[
{
"args":
{
"find": "(parameter.*?)\[(.*?)\]",
"replace": "__$1[^^$2^^]__",
"all":true,
"reg":true,
"flag":"gmi"
},
"command": "ssmacro.replace"
},
{
"args":
{
"find": "ssmacro",
"replace": "__ssmacro__",
"all":true,
"reg":false,
"flag":""
},
"command": "ssmacro.replace"
}
]
|
このファイルを実行してみます。(実行は、ssmacro.run にて実行できます。)

正規表現を使ったバターン置換では、フラグに "gmi" を指定しています。
- g グローバルなマッチ。最初のマッチの後に止まることなくすべてのマッチを探す。
- i 大文字・小文字の無視
- m 複数行に渡るマッチ。先頭および終端を示す文字 (^ や $) が、複数の行で機能します (すなわち、入力文字列全体の先頭および終端だけでなく各々の行 (\n や \r で区切られる) の先頭および末尾にマッチします)。
出典 : https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/RegExp
これですべての置換が実施されることに注意してください。
2番目は、通常の置換ですが、最初にヒットした文字列のみ置換されていることに注意してください。
もし、エディターのすべてのヒットする文字列を置換したい場合は、正規表現の "g" フラグを使ってください。