コンテンツにスキップ

キーボードショートカット

ショートカットは、lib/core/constants/keybindings.dart にある単一の const レジストリ、KeybindingRegistry から供給されます。このレジストリは 49 個のバインド を保持しています。設定 → 自分 → キーバインド は、そのレジストリを 読み取り専用のリファレンス として描画します。再割り当て用の UI はなく、ユーザーが用意するキーバインドファイルもありません。

以下の Cmd は主要なコマンド修飾キーです — macOS では ⌘、Windows と Linux では Ctrl です。バインドは、そのコマンドに現在の画面で登録されたハンドラーがあり、かつ when 句が成立する場合にのみ発火します。!textInputFocus は、そのキーが代わりにフォーカス中のテキストフィールドへそのまま渡されることを意味します。

数字キーによるナビゲーションのショートカットはありません。受信トレイ、チケット、プルリクエストなどへは、サイドバーまたは ⌘K から到達します。オブザーバビリティにもショートカットはありません。

スコープは global で、シェル内のどこでも有効です。

ショートカット 操作 条件
Cmd/Ctrl + K コマンドパレット —
Shift + / (?) キーボードショートカットのチートシート フィールドに入力中でない
Cmd/Ctrl + Z 元に戻す フィールドに入力中でない(フォーカス中のフィールドは自前の取り消しを保持します)
Cmd/Ctrl + Shift + Z やり直す フィールドに入力中でない
Cmd/Ctrl + Shift + T テーマを切り替え —
Cmd/Ctrl + , 設定を開く(/settings/you/appearance に着地します) —
Cmd/Ctrl + Shift + Alt + F フォーカスモードを切り替え —
Cmd/Ctrl + Shift + W ワークスペーススイッチャーを切り替え —
Cmd/Ctrl + ] 次のワークスペース —
Cmd/Ctrl + [ 前のワークスペース —
Cmd/Ctrl + Alt + 1 … Cmd/Ctrl + Alt + 9 ワークスペース 1–9 に切り替え —

スコープは /pull-requests です。いずれも route == '/pull-requests' と、テキストフィールドがフォーカスされていないことを要件とするため、一覧の上に PR 詳細のルートが開いている間は発火しません。

ショートカット 操作
R 更新
Enter PR を開く
F フィルターメニューを開く

Enter(pr.list-open)はレジストリで宣言され、キーバインドのリファレンスにも表示されますが、一覧画面はこれに対するハンドラーを登録していません。そのため現在は発火しません。F が開くのは検索ではなくフィルターメニュー(pr.list-open-filter)です。

スコープは /pull-requests/ です。更新はテキストフィールドがフォーカスされていないことを要件とします。タブを閉じるほうにはテキスト入力のガードがなく(⌘ を伴うキー操作がプレーンテキストになることはありません)、一覧では発火しないようにルートの正規表現が付いています。

ショートカット 操作 条件
R 更新 フィールドに入力中でない
Cmd/Ctrl + W タブを閉じる /pull-requests/<…> のロケーション上

タブの切り替え(1/2/3)、ファイルの閲覧済み/折りたたみ(V/C)、ファイル一覧(T)、差分内検索(Cmd/Ctrl + F)は、差分ビューアー自身のハンドラーが担います — レジストリ外の差分ビューアーキー を参照してください。

ショートカット 操作
F フィルターメニューを開く

route == '/inbox' と、テキストフィールドがフォーカスされていないことを要件とします。

スコープは /users/ です。when 句は /users/<login> または /teams/<organization>/<slug> に対する正規表現で、さらにテキストフィールドがフォーカスされていないことが条件です。

ショートカット 操作
R 更新
/ 検索にフォーカス
Cmd/Ctrl + F 検索にフォーカス

スコープは /spaces です。when 句が正規表現を使うため、スペース一覧(/spaces)と選択中のスペース(/spaces/<id>)の両方で発火します。

ショートカット 操作 条件
Enter メッセージを送信 —
Cmd/Ctrl + N 新しいスペース /spaces ルート上
J 次のスペース フィールドに入力中でない
K 前のスペース フィールドに入力中でない
Cmd/Ctrl + Shift + D プッシュトゥトークのディクテーション —
Cmd/Ctrl + T エディタータブを開く /spaces ルート上
Cmd/Ctrl + W エディタータブを閉じる /spaces ルート上
Cmd/Ctrl + B エディターサイドバーを切り替え /spaces ルート上
Cmd/Ctrl + P ファイルに移動 /spaces ルート上

「ファイルに移動」は会話のファイルを選べるピッカーを開きます。何も入力しなければ最近開いたファイルが一覧され、入力すると会話のワークツリー内のすべてのファイルを検索します。Enter で選択したファイルを新しいタブで開き、Cmd/Ctrl + Enter または行の分割ボタンで右側のペインに開きます。最近のファイルの行にある × はそのファイルを一覧から削除します。

Enter による送信はコンポーザーのテキストフィールドが、プッシュトゥトークはコンポーザーのマイクボタン(独自のハードウェアキーボードハンドラー)が担います。どちらも設定のリファレンス用にレジストリへ掲載されています。

スコープは /workspaces で、ピッカー自体でのみ有効です。

ショートカット 操作
Cmd/Ctrl + N 新しいワークスペース
Enter 選択中のワークスペースを開く

Enter はテキストフィールドがフォーカスされていないことを要件とします。

ショートカット 操作 画面
J 次の設定ページ /settings 配下の任意のルート、入力中でない
K 前の設定ページ /settings 配下の任意のルート、入力中でない
Cmd/Ctrl + N 新しいエージェント 設定 → ワークスペース → エージェント
Cmd/Ctrl + N リポジトリを追加 設定 → ワークスペース → リポジトリ
R アダプターを再スキャン 設定 → サーバー → モデルプロバイダー

スコープは /newsfeed です。いずれも route == '/newsfeed' と、テキストフィールドがフォーカスされていないことを要件とします。

ショートカット 操作
J 次の記事
K 前の記事
Enter 記事を開く
S ブックマークを切り替え
R フィードを更新

PR の差分ビューアーはこれらを自前で処理します(PrDiffKeyboardHandler)。検索/閲覧済み/折りたたみは、設定のリファレンス用にレジストリのコメントへ記載されているだけです — ディスパッチャーのハンドラーは登録されていないため、ディスパッチャーはこれらを差分ビューに委ねます。これらはキーバインドのリファレンスに独立した行としては表示されません。

ショートカット 操作
Cmd/Ctrl + F 差分内を検索
J / K 次のファイル/前のファイル
V フォーカス中のファイルの閲覧済みを切り替え
C フォーカス中のファイルの折りたたみを切り替え
T ファイルリストを表示
Enter 次の一致(差分内検索が開いている間のみ)
Shift + Enter 前の一致
Escape 差分内検索を閉じる、または差分のテキスト選択を解除
Cmd/Ctrl + C 差分の選択範囲をコピー

Web ビルドでは、ブラウザーが一部のアクセラレーターをページが受け取る前に消費するため、対応するバインドはそこで発火できません。デスクトップでは通常どおり動作します。主要なコマンド修飾キーと組み合わせたときに予約されるのは、T、W、N と数字の 1–9 です。

これが該当するのは、Cmd/Ctrl + Alt + 1–9 のワークスペース切り替え、Cmd/Ctrl + N(新しいスペース、新しいワークスペース、新しいエージェント、リポジトリの追加)、およびスペースと PR 詳細における Cmd/Ctrl + T / Cmd/Ctrl + W です。