[スニペット] プラグインの使い方

EmEditor Professional では、既定で [スニペット](Snippets) プラグインがインストールされます。このプラグインを使用すると、定型文字列を素早く挿入することができます。スニペットは、プレーン テキスト、プレイスホルダー、シェルコード、マクロ、テキストを変換するための正規表現、およびビルトインまたはユーザー定義のパラメータからできています。スニペット プラグインでは、2 種類のアイテム - スニペットとマクロ - を作成することができます。

[スニペット] プラグインを使用するには、プラグイン バーの スニペット をクリックするか、または [ツール] メニューの [プラグイン] をポイントし、[スニペット] を選択します。すると、[スニペット] カスタム バーが表示されます。

[スニペット] カスタム バーで右クリックを行うと、次のオプションが表示されます。

挿入

選択されたスニペットを挿入します。

編集

選択されたスニペットを編集します。

スニペットの選択

ダイアログ ボックスを表示して、少しの文字をタイプしてスニペットを選択し、挿入します。

スニペットの新規作成

スニペットを新規作成します。

マクロの新規作成

マクロを新規作成します。

フォルダの新規作成

フォルダを新規作成します。

上へ移動

選択されたスニペットを一覧の上へ移動します。

下へ移動

選択されたスニペットを一覧の下へ移動します。

削除 > 削除

選択されたスニペットを削除します。

削除 > すべて削除

すべてのスニペットを削除します。

インポート/エクスポート > このフォルダにインポート

このフォルダにスニペットをインポートします。

インポート/エクスポート > ルートにインポート

ルート フォルダにスニペットをインポートします。

インポート/エクスポート > このフォルダをエクスポート

このフォルダのすべてのスニペットを指定するファイルにエクスポートします。

インポート/エクスポート > すべてエクスポート

すべてのスニペットを指定するファイルにエクスポートします。。

インポート/エクスポート > すべてリセット (既定をインポート)

スニペットをすべてリセットし、既定のスニペット一覧をインポートします。

表示 > トリガー キー

トリガー キーの表示、非表示を切り替えます。

表示 > 設定

設定の表示、非表示を切り替えます。

表示 > プラグインのプロパティ

プラグインのプロパティを表示します。

整列 > 名前

名前で整列します。

整列 > 種類

種類で整列します。

整列 > テキスト

テキストで整列します。

整列 > ヒント

ヒントで整列します。

整列 > トリガー

トリガーで整列します。

整列 > 昇順

昇順に整列します。

整列 > 降順

降順に整列します。

整列 > 自動整列

自動的にスニペットを整列します。

プロパティ

選択したスニペットまたはフォルダのプロパティを表示します。

スニペット プラグイン プロパティ

スニペット プラグインのプロパティを調節するには、プラグイン バーのスニペット プラグイン ボタンで右クリックを行い、プロパティを選択します。

[全般] ページ

カスタム バーの位置

カスタム バーの位置を設定します。

バックグラウンドでも実行

スニペット カスタム バーを閉じた状態でもスニペットが動作するようにします。

既定のショートカット キー

既定のショートカット キーを指定します。最初の既定ショートカット キーは Tab です。

詳細情報

ヒントの頻度を調節します。

遅延時間

ヒントが表示される前の遅延時間を調節します。

[グローバル パラメータ] ページ

追加

パラメータを追加して、その値を指定します。

削除

パラメータを削除します。

[キーボード] ページ

コマンド

利用可能なコマンド一覧を表示します。

追加するショートカット キー

選択されたコマンドのショートカット キーを入力します。

現在の割り当て

選択されたコマンドに現在割り当てられているキー。

説明

選択されたコマンドの説明。

割り当て

現在選択されたコマンドにショートカット キーを割り当てます。

削除

現在選択されたショートカット キーを削除します。

スニペット フォルダ プロパティ

スニペット フォルダのプロパティを調節するには、スニペット カスタム バーのフォルダで右クリックを行い、プロパティを選択します。

[全般] ページ

名前

スニペット フォルダの名前を指定します。

[設定] ページ

次の設定でのみオート コンプリートを行う

オート コンプリートを行う設定を指定します。

スニペット

スニペットを編集する設定を指定します。

マクロ

マクロを編集する設定を指定します。

スニペット プロパティ

スニペットのプロパティを調節するには、スニペット カスタム バーのフォルダで右クリックを行い、プロパティを選択します。

[全般] ページ

名前

スニペット フォルダの名前を指定します。

トリガー

スニペットのトリガーを指定します。

ショートカット

スニペットのショートカットを指定します。

ヒント

スニペットのヒントを指定します。

種類

種類 (スニペットまたはマクロ) を指定します。

テキスト

スニペットのテキストを指定します。

編集

このボタンをクリックすると EmEditor ウィンドウでスニペットを編集することができます。

[設定] ページ

次の設定でのみオート コンプリートを行う

オート コンプリートを行う設定を指定します。

スニペット

スニペットを編集する設定を指定します。

マクロ

マクロを編集する設定を指定します。

スニペットの構文

プレーン テキスト

どのようなプレーン テキストも文書に挿入するスニペットに含めることができます。プレーン テキストを書くには、ほとんどの文字を使用できますが、\\$、または ` をプレーン テキストに含めたい場合、\\\$、\` というようにエスケープする必要があります。

プレイスホルダー

スニペットを挿入した後、カーソル位置は、プレイスホルダー間をジャンプし、Tab キーを押すと、次のプレイスホルダーにジャンプします。

これらのタブ ストップは、${n:default} としてスニペット内に定義することができます (default は、スニペットを挿入したときに最初に表示される既定値)。既定値がない場合は、{} を省略して $n と記述することができます (n は、0 から 9 までの整数)。スニペットを挿入すると、最初のカーソル位置は $1 になり、Tab を押すとタブ ストップがプレイスホルダー $2$3、... というように移動します。最後のタブ ストップは $0 になります。

たとえば、次のスニペットは、HTML にハイパーリンクを挿入し、最初のカーソル位置は $1 になります。カーソルが $1 にあるとき、Tab キーを押すと、カーソルは $2 にジャンプし、さらに押すと $0 にジャンプします。

<a target="$1" href="$2">$0</a>

スニペットには既定値を含めることができます。次のスニペットは、既定値が付いたハイパーリンクを挿入します。

<a target="${1:_blank}" href="${2:url}">$0</a>

プレイスホルダー内に別のプレイスホルダーを含めることができます。次のスニペットは、target パラメータを選択した状態でハイパーリンクを挿入します。ユーザーは引数を上書きするか、削除するか、または Tab キーを押して次のプレイスホルダーに進むかを選択することができます。

<a ${1: target="${2:_blank}"} href="${3:url}">$0

ミラー

同じプレイスホルダー インデックスを使用すると、これらのプレイスホルダーの値はすべて同じになります。これをミラーと言います。次のスニペットは、for ループを挿入します。この場合、値 i$2 の既定値で、同じインデックスのプレイスホルダーが他の 2 箇所でも使用されています。カーソルが ${2:i} にあるとき、i の値を変更すると、他の場所にもミラーされます。

for( ${1:int} ${2:i} = ${3:0}; $2 != ${4:10}; $2++ ){
    $0
}

変換

あるプレイスホルダーの値を別の場所に正規表現と置換フォーマットを使用して変換することができます。構文は、次のようになります。

${n/regexp/replace_format/option}

ここで、

n

プレイスホルダーのインデックス

regexp

検索する正規表現

replace_format

置換フォーマット

option

i : 大文字と小文字を区別しない

g

となります。

次の例は、最初の行に入力した文字を次の行に最初の文字だけ大文字にしてコピーします。

$1
${1/./\U\0/}

定義済みパラメータ

$1

プレイスホルダー 1。

$2

プレイスホルダー 2。

$3

プレイスホルダー 3。

$4

プレイスホルダー 4。

$5

プレイスホルダー 5。

...

...

$9

プレイスホルダー 9。

$0

最後のプレイスホルダー。

${n:default}

既定値 default が付いたプレイスホルダー n。

${Path}

現在のファイルの完全パス名。

${Dir}

現在のファイルのディレクトリ名。

${Filename}

ファイル拡張子を除くファイル名。

${FilenameEx}

ファイル拡張子を含むファイル名。

${Ext}

ファイル拡張子。

${LineText}

カーソル位置の行。

${WordText}

カーソル位置の単語。

${SelText}

選択されたテキスト。

${CurCol}

カーソル位置の論理桁番号。

${CurLine}

カーソル位置の論理行番号。

${Date}

今日の日付。

${Time}

現在の時刻。

${Charset}

HTML meta タグで使用される Charset。

${TabSize}

タブのサイズ。

${IndentSize}

インデントのサイズ。

${AutoIndent}

自動インデントが有効なら 1、そうでなければ 0。

${UseSpacesForTabs}

[タブの代わりに空白を挿入] が有効なら 1、そうでなければ 0。

${AppVersion}

EmEditor のバージョン。

${PluginVersion}

スニペット プラグインのバージョン。

${TM_FILENAME}

${FilenameEx} と同じ。

${TM_CURRENT_LINE}

${LineText} と同じ。

${TM_CURRENT_WORD}

${WordText} と同じ。

${TM_DIRECTORY}

${Dir} と同じ。

${TM_FILEPATH}

${Path} と同じ。

${TM_LINE_INDEX}

${CurCol} と同じ。

${TM_LINE_NUMBER}

${CurLine} と同じ。

${TM_SELECTED_TEXT}

${SelText} と同じ。

${TM_SOFT_TABS}

${UseSpacesForTabs} と同じ。

${TM_TAB_SIZE}

${TabSize} と同じ。

${PickFullPath,title,filter}

選択されたファイルの完全パス名。 title はダイアログ ボックスのタイトルを、filter は、次のフォーマットのフィルタを示します。: テキスト ファイル|*.txt|すべてのファイル|*.*||。

${PickRelativePath,title,filter}

選択されたファイルの相対パス名。 title はダイアログ ボックスのタイトルを、filter は、次のフォーマットのフィルタを示します。: テキスト ファイル|*.txt|すべてのファイル|*.*||。

${PickColor}

選択された色の RGB 値。

${DefColor}

最近選択された色の RGB 値。

${parameter_name}

の形式で、パラメータを定義することができます (parameter_name は上の一覧で定義されていない値)。新しいユーザー パラメータが使用されると、ダイアログ ボックスが表示され、値の入力を促されます。ただし、プラグインのプロパティのグローバル パラメータで保存されているパラメータの場合は、値の入力は促されません。

シェルコード

コンソール アプリケーションを実行して文字列をその標準入力に渡すシェルコードを定義することができます。コンソール アプリケーションからの標準出力および標準エラーは、テキスト文書のカーソル位置にリダイレクトされます。

`- appname
stdin1
stdin2
...
`

結果の文字列が改行コード (CR、LF、または CR+LF) で終わる場合、その改行コードは削除されます。たとえば、次のスニペットは ${name} パラメータの中身を大文字で挿入します。

`- powershell -
# prompts for name then echos the hello greeting
\$name = "${name}".ToUpper()
"Hello \$name!"
exit
`

スニペット パラメータを解析したくない場合は、次のように書くことができます。

`!- appname
stdin1
stdin2
...
`

コマンド プロンプトで使用されるコマンドを実行したい場合は、

`#cmd shell_code`

の形式でコマンド プロンプト ウィンドウ (cmd.exe) に渡すシェル コードを定義することができます。指定する値は、cmd.exe に次の形式で渡されます:

%COMSPEC% /c shell_code

コンソール アプリケーションからの標準出力および標準エラーは、テキスト文書のカーソル位置にリダイレクトされます。たとえば、次のスニペットは現在のフォルダ一覧を挿入します。

`#cmd DIR`

マクロ

`# `

の形式を使用して、スニペットにマクロを含めることができます。最初の文字 # が、これはシェルコードではなくマクロであることを示します。これが JavaScript 以外の ActiveScript (たとえば、VBScript、PerlScript、PHPScript、RubyScript) の場合、

`#language= `

の形式で使用する言語を指定する必要があります。たとえば、VBScript を使用する場合、

`#language="VBScript"... `

と記述します。Interface オブジェクトを使用してスニペットと EmEditor マクロ エンジンの間で値を渡すことができます。次の例は、クリップボードの中身をカーソル位置に挿入します。

クリップボードの中身は `# Interface.write( clipboardData.getData("") );` です。

Interface.write() メソッドは、マクロの結果をスニペットに渡します。Interface.writeln() を使用すると、結果の最後にコードとして改行と復帰 (CR+LF) を追加します。各スニペットに複数のマクロを含めることができます。

既定値、シェルコード、またはマクロ内のパラメータ

プレイスホルダーの既定値には、パラメータ、シェルコード、マクロを含めることができます。次のスニペットは、テキストが選択されている場合、選択されたテキストを <p></p> の間に入れて、<p> タグを挿入します。

<p>${0:${SelText}}</p>

シェルコードとマクロは、その中にパラメータを含めることができます。次のスニペットは、ダイアログ ボックスを表示し、そこでユーザーは ${name} パラメータに値を入力して継続することができます。

`# var s = "${name}";
for( var i = 0; i != 5; i++ ){
    Interface.writeln( s );
}
`

\ と ` と $ は、\ でエスケープする必要があります。たとえば、次のスニペットは、 C:\Program Files\EmEditor を挿入します。

`# Interface.writeln( "C:\\\\Program Files\\\\EmEditor" ); `

これは、1 個の \\\ と記述する必要があるためで、さらに JavaScript は \\\ に変換するためです。結果として、\\\\\ に変換されます。

シェルコードまたはマクロにパラメータを含める必要がなく、\ を変換したくない場合は、感嘆符 (!) をコードの最初に含めることができます。つまり、シェルコードでは、`!...` と記述することができ、マクロでは `!#...` と記述することができます。つまり、先の例は、次のように書き直すことができます。

`!# Interface.writeln( "C:\\Program Files\\EmEditor" ); `

ヒント

  • F6 キーまたは ESC キーを押すと、エディタにキーボード フォーカスが戻ります。

  • カスタム バーの位置は、プラグイン バーのボタン上で右クリックを行い [プロパティ] を選択して、上、下、左、右から変更することができます。