11 ドラッグコマンド

ドラッグコマンドは普通のコマンドに似ています。しかし、このコマンドは特定の(ファイルタイプ拡張子のリストによって特定された)ファイルタイプを編集中のウインドウにドロップすることによって有効になります。

ドラッグコマンドファイルタイプ

ドラッグコマンドを実行して得られるアウトプットは常にスニペットとして挿入され、ドラッグコマンドは3つの(追加の)環境変数が用意されています。:

  • TM_DROPPED_FILE — (現在のディレクトリとして設定されたドキュメントのディレクトリに相対した)ドロップされたファイルの相対パス。

  • TM_DROPPED_FILEPATH — ドロップされたファイルの絶対パス。

  • TM_MODIFIER_FLAGS — ファイルがドロップされたときに押し続けられた修飾キー。これはbitwiseもしくは以下の形です: SHIFT|CONTROL|OPTION|COMMAND (もし全ての修飾キーが押さえられた状態であれば。)

こちらが少し複雑なドラッグコマンドです:

img="$TM_DROPPED_FILE"
echo -n "<img src=\"$img\" "

sips -g pixelWidth -g pixelHeight "$img" \
|awk '/pixelWidth/  { printf("width=\"%d\" ",  $2) }
      /pixelHeight/ { printf("height=\"%d\" ", $2) }'

base=${img##*/}
alt=$(tr <<<${base%.*} '[_-]' ' '|perl -pe 's/(\w+)/\u$1/g')
echo -n "alt=\"\${1:$alt}\">"

まずはじめに<img src="…"の部分のアウトプットします。それから、 イメージに クエリを行うためsipsを使い、そのsipsからのアウトプットをパースするためにawkを使い、適切なwidth="…"height="…"引数(argument)をアウトプットします。

最後にスペースに対して-_をパスに、それぞれの頭文字を大文字にし、これを最後のalt="…"引数として、(全てはスニペットとして挿入されるので)このテキストをプレイスホルダにした場所アウトプットします。

ドラッグコマンドの結果