## 訂正(2026-07 レビュー)— #277 との役割分担を明確化 当初この issue と #277 の両方が「互換プリセット」を提案しており重複していた。以下に分割する。 - **この issue = 仕組み**(再割り当て、プリセット機構、衝突検出、エクスポート、一覧の自動生成) - **#277 = 既定のキーマップ設計とキーボード完結のマージ操作** ## 目的 キーボードショートカットを変更できる仕組みを作る。 ## 現状(`internal/server/web/index.html:297-303`) `#shortcutsDialog` でショートカット一覧を**表示**できるが、変更はできない。バインドは固定。 ## 参考 - **KDiff3** は「Configuring Keyboard-Shortcuts」を設定ダイアログの独立した章として持つ https://kdiff3.sourceforge.net/doc/options.html - **JetBrains** はキーマップ全体を差し替え可能(Eclipse 風、Visual Studio 風などのプリセット) ## 提案 1. **再割り当ての仕組み**: 全アクションに ID を振り、バインドを設定として持つ 2. **プリセット機構**: WinMerge 互換 / VS Code 互換 / JetBrains 互換。**各プリセットの中身は #277 で設計する** 3. **衝突の検出**: 割り当て衝突をその場で警告し、衝突相手を表示する 4. **アクション検索**: 「次の差分」で検索してバインドに到達できる 5. **エクスポート/インポート**: JSON。チーム共有・現場標準化 6. **一覧ダイアログの自動生成**: `#shortcutsDialog` の内容を実際のバインドから生成する。現在が静的なら、カスタマイズ後に不整合が起きる 7. **チートシートの印刷/PDF 出力** ## 注意 - ブラウザ予約キー(Ctrl+W, Ctrl+T 等)は割り当て不可。明示する - **IME 有効時のキー処理と衝突しないこと**(日本語入力中の Alt/Ctrl 組み合わせ)。#255 の編集機能と同じ領域 - `localStorage` に保存し、#260 の永続化スコープ方針(表示系=グローバル)に従う ## 完了条件 - 全ショートカットが変更できる - プリセットの切り替えが1操作でできる - 衝突が検出される - 一覧ダイアログが実際のバインドを反映する (2026-07 UI設計調査 / 2026-07 レビューで #277 との重複を解消)
訂正(2026-07 レビュー)— #277 との役割分担を明確化
当初この issue と #277 の両方が「互換プリセット」を提案しており重複していた。以下に分割する。
目的
キーボードショートカットを変更できる仕組みを作る。
現状(
internal/server/web/index.html:297-303)#shortcutsDialogでショートカット一覧を表示できるが、変更はできない。バインドは固定。参考
提案
#shortcutsDialogの内容を実際のバインドから生成する。現在が静的なら、カスタマイズ後に不整合が起きる注意
localStorageに保存し、[UX] 比較条件が比較単位でスコープされていない + word ハイライトだけ永続化漏れ(表示設定の永続化は実装済み) #260 の永続化スコープ方針(表示系=グローバル)に従う完了条件
(2026-07 UI設計調査 / 2026-07 レビューで #277 との重複を解消)