設定画面を開く
メニューバーの Pluck アイコンをクリックし、「設定…」を選びます。開いた画面の「ルール」タブが、ルールの一覧と編集画面です。
ルールの追加には、試用期間中であるかライセンスが必要です。試用が終わって未購入の場合、+ ボタンが押せなくなります。すでにあるルールの編集と、有効と無効の切り替えはできます。
ルールの一覧
左側にルールが並びます。テキストに反応するルールと、画像に反応するルールの2つの節に分かれています。
各行にはルールの名前と、その下にマッチ条件が出ます。マッチ条件が空欄のルールには(常に表示)、マッチ条件を持たない総置換と画像を貼り付けには短い説明が出ます。無効にしたルールには「無効」と表示されます。
候補が出る順番は、この一覧の順です。新しく追加したルールは末尾に入ります。
一覧の下にボタンが3つあります。
- + 新しいルールを追加します。追加直後の種類は Web検索です。
- − 選択中のルールを削除します。総置換と画像を貼り付けは削除できません。使わないときは有効を切ってください。
- 初期値に戻す 作ったルールをすべて消して、最初からある既定のルールに戻します。取り消せません。
アクションを選ぶ
ルールを選ぶか追加すると、右側に編集画面が出ます。まず「アクション」の節にある「種類」から、このルールが何をするかを選びます。選択肢は3つの節に分かれています。選ぶと、その下に必要な項目だけが表示されます。
プリセット
よく使う URL アクションを、入力済みのルールとして選べます。3つあり、どれも種類は URLを開くです。選択したテキストを AI のチャットや検索にそのまま渡す用途に向いています。
使いかたは次のとおりです。
- + で新しいルールを追加します。書き換えてよい既存のルールを選んでも構いません。
- 「種類」のプルダウンを開き、プリセットの節から1つ選びます。
- 名前、アイコン、開く URL が入ります。マッチ条件は空欄になり、差し込む値を URL エンコードするはオンになります。
- 「保存」を押します。
それぞれのプリセットで入る値と動作です。
| プリセット | 開く URL | アイコン | 動作 |
|---|---|---|---|
| Claude に投げる | https://claude.ai/new?q=$0 | quote.bubble.fill | 選択したテキストをプロンプトにして、Claude の新しいチャットを開きます。 |
| ChatGPT に投げる | https://chatgpt.com/?prompt=$0 | message.fill | 選択したテキストをプロンプトにして、ChatGPT の新しいチャットを開きます。 |
| Perplexity で調べる | https://www.perplexity.ai/search?q=$0 | magnifyingglass | 選択したテキストを Perplexity で検索します。 |
どれも既定のブラウザでそのサービスのサイトを開きます。ログインが必要なサービスでは、サービス側のログイン画面が出ることがあります。
選んだあとに知っておくとよいことです。
- マッチ条件が空欄なので、何を選択しても候補に出ます。長い文章を選択したときだけ出したいなど、出る場面を絞りたいときはマッチ条件を書きます。
- プリセットは入力済みの URLを開くルールです。保存したあとに「種類」を見ると URLを開くと表示され、プリセット名は残りません。名前、アイコン、開く URL は、ふつうのルールと同じように書き換えられます。
- 「差し込む値を URL エンコードする」はオンのままにしてください。オフにすると、選択したテキストに空白や記号、日本語が入っているときに URL が壊れます。
- Google 検索のプリセットはありません。種類の Web検索が同じ動作をします。
基本
マッチ条件とテンプレートを自分で書く5種類です。
- URLを開く マッチした文字列を差し込んだ URL を、既定のブラウザで開きます。
- Web検索 選択したテキストを Google で検索します。
- コピー マッチした文字列か、テンプレートで組み立てた文字列をクリップボードにコピーします。
- コマンド実行 選択したテキストを差し込んだ zsh コマンドを実行します。
- 翻訳 選択したテキストの言語を判定し、設定した言語ペアのもう一方へ翻訳します。
固定機能
総置換と画像を貼り付けの2種類です。動作が決まっていて、マッチ条件もテンプレートもありません。変えられるのは名前、アイコン、有効か無効かだけです。それぞれ必ず1つ存在し、削除できません。他のルールからこの種類へ切り替えることもできません。
各アクションの詳しい設定はアクション一覧とレシピにあります。
ルールの各項目
基本
- 名前 候補に表示される見出しです。「Jiraチケットを開く」のように、押すと何が起きるか分かる名前にしておくと、候補が並んだときに選びやすくなります。
- 有効 切るとそのルールは候補に出なくなります。削除せずに止めておきたいときに使います。
- アイコン 候補に表示する記号を一覧から選びます。
アクションの設定
- マッチ条件 どんなテキストに反応するかを正規表現で書きます。空欄なら常に候補に出ます。
- 大文字小文字を無視 既定でオンです。
[A-Z]{2,10}-\d+のように大文字にだけ反応させたいときはオフにします。 - テンプレート 欄の見出しは種類によって変わります。URLを開くなら「開く URL」、Web検索なら「検索する語句」、コピーなら「コピーする文字列」、コマンド実行なら「実行するコマンド」です。翻訳はテンプレートを使わず、代わりに言語1と言語2を選びます。
- 差し込む値を URL エンコードする URLを開くだけにあります。
$0などで差し込む値だけをエンコードし、空白や&、日本語を URL のクエリに安全に載せます。選択したテキストを検索語やプロンプトとして URL に載せるならオンにしてください。チケット番号のように英数字だけを差し込むなら、どちらでも結果は同じです。
入力すると、その下に「例:」の行が出ます。いま書いているテンプレートがどう展開されるかを、差し込み記号を言葉に置き換えて見せる行です。保存する前に、意図した URL や文字列になっているかをここで確かめられます。
編集した内容は「保存」を押すまで反映されません。未保存のまま別のルールに移ろうとすると、保存するか破棄するかを聞かれます。「取り消し」を押すと保存済みの状態に戻ります。
マッチ条件
マッチ条件は ICU 構文の正規表現です。選択またはコピーしたテキストの中からこの条件に一致する箇所を探し、見つかった箇所ごとに候補を作ります。
| 反応させたいもの | マッチ条件 |
|---|---|
| Jira のチケット番号。WT-1234 など | [A-Z]{2,10}-\d+ |
| URL | https?://[^\s]+ |
| メールアドレス | [A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,} |
| GitHub の owner/repo#123 | ([\w.-]+)/([\w.-]+)#(\d+) |
| 8桁の数字だけの注文番号 | \b\d{8}\b |
- 空欄にすると、どんなテキストにも反応します。選択したテキスト全体がアクションの対象になります。検索、コピー、翻訳のような何にでも使うルールはこの形です。
- 部分一致です。文章の途中に埋まっているチケット番号も拾います。
- 1つの選択の中に一致する箇所が複数あれば、その数だけ候補が出ます。ただし同じルールがまったく同じ文字列に何度も一致した場合、候補は1つにまとまります。
- 評価に時間がかかりすぎるルールは途中で打ち切られ、そのルールの候補は出ません。
(a+)+$のような、入力によって際限なく遅くなる書きかたをしても、アプリ全体が止まることはありません。
テンプレートと差し込み
テンプレートには、マッチした内容を次の記号で差し込めます。
| 記号 | 差し込まれるもの |
|---|---|
$0 | マッチした箇所の全体。マッチ条件が空欄なら、選択したテキスト全体。 |
$1、$2 … | マッチ条件の中で ( ) で囲んだグループ。左の括弧から順に1、2と数えます。一致しなかったグループは空になります。 |
${name} | 名前付きグループ。マッチ条件に (?<name>…) と書いたものを名前で参照します。 |
マッチ条件を ([\w.-]+)/([\w.-]+)#(\d+)、開く URL を https://github.com/$1/$2/issues/$3 にしたルールで anthropics/claude-code#42 を選択すると、$1 が anthropics、$2 が claude-code、$3 が 42 になり、https://github.com/anthropics/claude-code/issues/42 が開きます。
差し込みの規則
- 対応するグループがない
$5や${name}は、消えずにそのまま文字として残ります。ただし、存在しないグループを参照しているテンプレートは保存できません。 - 差し込んだ値は読み直されません。差し込まれたテキストの中に
$1のような文字列があっても、さらに置き換えられることはありません。 $12のように数字が続く場合、グループが12個以上あれば12番のグループ、なければ1番のグループと文字の2として読みます。- コピーでテンプレートを空欄にすると、マッチした箇所の全体をそのままコピーします。
- 翻訳はテンプレートを使いません。マッチ条件が空欄なら選択したテキスト全体、マッチ条件があればマッチした箇所を翻訳します。
保存できないとき
「保存」が押せないときは、ボタンの左に理由が出ています。
| メッセージ | 直しかた |
|---|---|
| 名前を入力してください。 | 名前が空欄です。 |
| 正規表現が正しくありません。 | マッチ条件が正規表現として読めません。括弧の閉じ忘れなどを確認してください。 |
| アクションのテンプレートを入力してください。 | URLを開く、Web検索、コマンド実行では、テンプレートを空にできません。 |
| テンプレートが存在しないキャプチャグループを参照しています。 | マッチ条件のグループが2つしかないのに $3 を書いた、名前付きグループの綴りが違う、といった場合です。 |
| 異なる2つの言語を選んでください。 | 翻訳の言語1と言語2が同じです。 |
| URL は https: などのスキームから始めてください。 | 開く URL が https: や mailto: で始まっていません。テンプレートが $0 だけのときは、選択したテキストが URL そのものとみなされるので通ります。 |
保存先と初期化
ルールは ~/Library/Application Support/Pluck/rules.json に保存されています。設定画面で編集するとこのファイルが更新されるので、ふだん直接開く必要はありません。別の Mac に移すときやバックアップを取るときは、このファイルをコピーしてください。
アップデートで新しい種類のアクションが増えたときは、次に起動したとき、その種類の既定ルールが自動で追加されます。すでにあるルールは書き換わりません。
作ったルールをすべて消して最初の状態に戻すには、一覧の下の「初期値に戻す」を使います。