Alfred 4のスニペットで使えるプレースホルダー機能

以前スニペット機能に関しての基本的な解説はしたのですが、今回はスニペット内で使えるプレースホルダー(正式名称:Dynamic Placeholders)についてまとめておきます。
プレースホルダー
スニペット追加時の「Snippet:」内に波括弧{}で囲まれた特定の文字列を入れておくことで、日付やクリップボードなどの情報を入れた状態でスニペットを発火できるようになります。
プレースホルダーの追加は左下にある{}アイコンをクリックして選択します。

日付関連
「Date and Time」内のプレースホルダーは、日付や時間に関するプレースホルダーがまとめられています。
| プレースホルダー | 入る情報 | 例 | 備考 |
|---|---|---|---|
| {datetime} | 今日の日付と時間を取得 | 2019/10/01 09:41:00 | mediumと同じ形式 |
| {datetime:full} | 今日の日付と時間をfullで取得 | 2019年10月1日 火曜日 09時41分00秒 日本標準時 | |
| {datetime:long} | 今日の日付と時間をlongで取得 | 2019年10月1日 09:00:00 JST | |
| {datetime:medium} | 今日の日付と時間をmediumで取得 | 2019/10/01 09:00:00 | |
| {datetime:short} | 今日の日付と時間をshortで取得 | 2019/10/01 09:00 | |
| {date} | 今日の日付を取得 | 2019/10/01 | mediumと同じ形式 |
| {date:full} | 今日の日付をfullで取得 | 2019年10月1日 火曜日 | |
| {date:long} | 今日の日付をlongで取得 | 2019年10月1日 | |
| {date:medium} | 今日の日付をmediumで取得 | 2019/10/01 | |
| {date:short} | 今日の日付をshortで取得 | 2019/10/01 | |
| {time} | 今の時間を取得 | 09:41:00 | mediumと同じ形式 |
| {time:full} | 今の時間をfullで取得 | 09時41分00秒 日本標準時 | |
| {time:long} | 今の時間をlongで取得 | 09:41:00 JST | |
| {time:medium} | 今の時間をmediumで取得 | 09:41:00 | |
| {time:short} | 今の時間をshortで取得 | 09:41 | |
| {date:yyyy-MM-dd HH:mm:ss} | 日付と時間の形式を指定して取得 | 2019-10-01 09:41:00 | 形式は自由に変更することが可能 |
full・long・medium・shortは、[システム環境設定]→[言語と地域]→[詳細…]にある「日付」や「時刻」タブから確認・変更できます。
ただし、この設定はmacOS全体の設定で、変更すると他のアプリケーションなどにも変更が反映されてしまうため、変更するのはオススメしません。
形式を自由に変更して使いたい場合は、1番最後の{date:yyyy-MM-dd HH:mm:ss}をベースに改変して使うのが良さそうです。
日付や時間の計算
「Date and Time Arithmetic」内には過去の日付や時間に関するプレースホルダーがまとめられています。
| プレースホルダー | 入る情報 | 例 | 備考 |
|---|---|---|---|
| {datetime +1m} | 1分後の日付と時間を取得 | 2019/10/01 09:42:00 | mediumと同じ形式 |
| {datetime +1h} | 1時間後の日付と時間を取得 | 2019/10/01 10:41:00 | |
| {datetime +1d} | 1日後の日付と時間を取得 | 2019/10/02 09:41:00 | |
| {datetime +1M} | 1ヶ月後の日付と時間を取得 | 2019/11/01 09:41:00 | |
| {datetime +1y} | 1年後の日付と時間を取得 | 2020/10/01 09:41:00 | |
| {datetime -1m} | 1分前の日付と時間を取得 | 2019/10/01 09:40:00 | |
| {datetime -1h} | 1時間前の日付と時間を取得 | 2019/10/01 08:41:00 | |
| {datetime -1d} | 1日前の日付と時間を取得 | 2019/9/30 09:41:00 | |
| {datetime -1M} | 1ヶ月前の日付と時間を取得 | 2019/09/01 09:41:00 | |
| {datetime -1y} | 1年前の日付と時間を取得 | 2018/10/01 09:41:00 | |
| {date +1d} | 1日後の日付を取得 | 2019/10/02 | 他の単位(m/h/M/y)も使用可能 |
| {date -1d:full} | 1日前の日付をfull形式で取得 | 2019年09月30日 月曜日 | 他の形式(long/medium/short)も使用可能 |
| {date +1d:EEEE} | 1日後の曜日を取得 | 水曜日 | |
| {date -10y:y} | 10年前の年を取得 | 2009 | |
| {date +2y +3M +1d:EEEE} | 2年3ヶ月1日後の曜日を取得 | 日曜日 | |
| {datetime +1337h} | 1337時間後の日付と時間を取得 | 2019/12/25 02:42:00 |
スニペットとして使う機会はあまりないかもしれませんが、かなり細かく設定ができます。
クリップボードと履歴
「Clipboard and History」内にはクリップボードの内容を引っ張ってくるプレースホルダーがまとめられています。
| プレースホルダー | 入る情報 | 例 | 備考 |
|---|---|---|---|
| {clipboard} | クリップボードの内容を取得 | aaBB12ああイイ漢字 | |
| {clipboard:lowercase} | クリップボードの内容を小文字にして取得 | aabb12ああイイ漢字 | |
| {clipboard:uppercase} | クリップボードの内容を大文字にして取得 | AABB12ああイイ漢字 | |
| {clipboard:capitals} | クリップボードの内容を1文字目大文字にして取得 | Aabb12ああイイ漢字 | |
| {clipboard:trim} | クリップボードの内容の先頭と末尾から空白と改行を削除して取得 | aaBB12ああイイ漢字 | |
| {clipboard:0} | 最新のクリップボード内容を取得 | aaBB12ああイイ漢字 | |
| {clipboard:1} | 1個前のクリップボード内容を取得 | 1個前のクリップボード | |
| {clipboard:10} | 10個前のクリップボード内容を取得 | 10個前のクリップボード | |
| {clipboard:1.trim} | 1個前のクリップボード内容の先頭と末尾から空白と改行を削除して取得 | 1個前のクリップボード | lowercaseなどの他の変換修飾子も使用可能 |
クリップボードに改行が入っていると、スニペットの改行位置がズレてしまったりする場合もあるので、とりあえず:trimは付けておくのが良さそうです。
変換修飾子
lowercaseやuppercaseなどのクリップボードの内容を変える修飾子のことを「変換修飾子(Transform Modifiers)」と呼びます。
「Clipboard and History」内で確認できるもの以外にも色々あるので、組み合わせて使えば目的の形式にしてペーストできるようになります。
| 変換修飾子 | 変換内容 |
|---|---|
| uppercase | アルファベットを大文字にする |
| lowercase | アルファベットを小文字にする |
| capitals | 単語の先頭を大文字に、それ以外は小文字にする |
| capitalcase | capitalsと同じ |
| trim | 先頭と末尾から空白と改行を削除する |
| reverse | テキストを全体を逆にする |
| stripdiacritics | アクセント記号付きの文字を削除 |
| stripnonalphanumeric | 英数字以外の文字を削除する |
ランダム
「Ramdom」内にはスニペットが発火するたびに変わるようなプレースホルダーがまとめられています。
| プレースホルダー | 入る情報 | 例 | 備考 |
|---|---|---|---|
| {random:UUID} | ランダムな文字列を取得 | DE3B7804-CA32-47B2-A1CB-11F86C324A29 | |
| {random:..} | ランダムな数字を取得 | 1051865675 | |
| {random:0..} | ランダムな正の数を取得 | 897440456 | |
| {random:..-1} | ランダムな負の数を取得 | -676319593 | |
| {random:1..10} | ランダムに1から10の数字を取得 | 2 | |
| {random:apple,banana,pear,grape,orange} | 指定したテキストの中から1つを取得 | apple | テキストは自由に変更可能 |
完全なスニペットだと、文章が定形化してしまいますが、ランダムを使うことで挨拶などに表記ゆれを演出できます(それがいい事かどうかは人によりますが)。
カーソル
「Cursor」内にはスニペット発火後のカーソル位置を指定するプレースホルダーがまとめられています。
| プレースホルダー | 入る情報 | 備考 |
|---|---|---|
| {cursor} | スニペット発火後にこの位置にカーソルが来る | 複数設定は不可(文の初めに設定した方が優先される) |
あとから必ずテキストを入力する必要がある場所に設置しておくと、自動的にカーソルがその場所へ移動してくれます。
複数設定はできなくて、文の初めに設定した方が優先され、2つ目以降はただの文字列として{cursor}が表示されてしまいます。
まとめ
かなり柔軟に設定ができますし、DashやTextExpanderなどのスニペットアプリに引けを取らないレベルだと思います。
Alfredから呼び出せるのも魅力的ですし、使っていない人は試してみてはいかがでしょうか?

複数サービスを1つのアプリで管理できるStationの通知設定
Fantastical 2は音声入力を使って予定を追加するのが便利!
ソート時の「昇順・降順」どっちがどっちか迷わないための覚え方や対策
無料版でも高機能なランチャーアプリ「Raycast」の基本機能と環境設定
Alfred 4のClipboard History機能で、前にコピーした内容をペーストする方法
Abstractを使っている場合は、Default Folder Xの「今開いている書類のある場所をファイルダイアログで開く」をオフにする
作業効率化に大きく貢献してくれているMacのアプリ達
Keyboard Maestroのバージョン9.0がリリース!ダークモード対応やJSON関連のアクションが追加
ファイル移動を補助するPath Finderの特徴的な機能「ドロップスタック」について
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Chrome拡張機能の「Get RSS Feed URLs」でサイトのRSSを簡単に取得
Google Chromeのブックマークを綺麗に整理するコツ
Visual Studio CodeからFTPソフトのTransmitを使用する拡張機能「Transmit」
MacのSIPのオン・オフを切り替える方法
Dropboxのスマートシンク機能でハードディスクの容量を消費せずにファイルの管理を行う
Path FinderとFinderをいい感じに共存させるための設定
WordPressのデータを取得できるWP REST APIの使い方
ATOKの単語登録を複数ユーザー辞書に分けて管理する方法
Adobe XD × Keyboard Maestroでここまでできる!ショートカットキーであらゆることを実現するマクロサンプル
CSS Nite in Kobe, vol.48「ウェブサイトの課題発見とアイデア創出の方法を学ぶワークショップ」に参加してきました