【Obsidian】QuickAddのコマンドIDを調べる方法
ObsidianのプラグインQuickAddのChoice
は、設定画面の雷マークを押せばコマンドとして登録できます。

コマンドとして登録すれば、ホットキーやスクリプトから呼び出すことができます。しかし、スクリプトから呼び出すのであればコマンドIDを調べる必要があります。
今回は「Choiceでコマンドとして登録した際のIDの調べ方」とIDの使用例を紹介します。
ChoiceのコマンドIDの調べ方
Obsidianで登録されているすべてのコマンドのIDを調べるならapp.commands.commands
を使えばよいのですが、さすがに探すのが面倒です。そこで、リストにしてフィルターをかけます(参考:Issue #664)。
コンソールに表示
console.table(app.commands.listCommands().filter(c => c.id.includes('choice')))
開発者ツール(Ctrl+Shift+iなど)で開き、上記のスクリプトを貼り付けて実行します。

このテーブルの幅はExcelやスプレッドシートのように動かせるので適宜調整しましょう。
ノートに表示
ノートに表示したいのであればDataviewを使っても表示できます。
// dataviewjsの例dv.table( ["name", "id"], app.commands .listCommands() .filter((c) => c.id.includes("choice")) .map((c) => [c.name, c.id]),);

テーブルが見切れる場合はノートの幅が狭いので広くしましょう。
ChoiceのコマンドIDの使用例
ChoiceのコマンドIDを使っている例を紹介します。
筆者はブログネタをQuickAddのCaptureでデイリーノートに書き込み、Tasksで「完了」「未完了」に分けて表示しています。この書き込みボタンでコマンドIDを活用しています。

Captureの内容
Capture formatは次のようになっています。

「タイムスタンプ」「タグ」を含むチェックリストです。
ノートに書くこと
「書き込む」ボタンはMeta Bindというプラグインを使いました。Meta Bindでは、コマンドIDを指定して実行するボタンが用意できます。ボタンを用意しておけば、覚えるホットキーが少なくて済みます。
Meta Bindのコードブロックには次のように書きました。
style: defaultlabel: 書き込むactions: - type: command command: quickadd:choice:e0411179-b315-4bef-a504-d3fe7bfc6210
このquickadd:choice:xxx……
が、先ほど調べたChoiceのコマンドIDですね。
Meta Bindについては別の記事【Obsidian】ボタンを作れるプラグインMeta Bindの使い方に書いたので興味のある方はどうぞ。
完了したネタは折りたたんで表示しています。
> [!note]- 今日完了にしたネタ> ```tasks> filter by function task.file.folder === "daily/"> ignore global query> tag includes 💡> tag includes blog> done on today> short mode> hide tags> ```
未完了のネタはそのまま表示します。
filter by function task.file.folder === "daily/"ignore global querytag includes 💡tag includes blognot doneshort modehide tags
全体
使用例の全体も載せておきます。各自に合わせて変えてください。
```meta-bind-buttonstyle: defaultlabel: 書き込むactions: - type: command command: quickadd:choice:e0411179-b315-4bef-a504-d3fe7bfc6210```
# ブログネタ一覧
> [!note]- 今日完了にしたネタ> ```tasks> filter by function task.file.folder === "daily/"> ignore global query> tag includes 💡> tag includes blog> done on today> short mode> hide tags> ```
```tasksfilter by function task.file.folder === "daily/"ignore global querytag includes 💡tag includes blognot doneshort modehide tags```
以上、QuickAddのChoice関連でした。