{"id":26920953,"url":"https://github.com/omonomo/defaultkeybinding","last_synced_at":"2025-04-01T22:49:30.842Z","repository":{"id":189291946,"uuid":"680411773","full_name":"omonomo/DefaultKeyBinding","owner":"omonomo","description":"DefaultKeyBinding.dict サンプル","archived":false,"fork":false,"pushed_at":"2025-03-04T12:30:58.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-04T13:33:22.252Z","etag":null,"topics":["default-key-binding","macos"],"latest_commit_sha":null,"homepage":"https://omonomo.github.io/DefaultKeyBinding/","language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/omonomo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-19T06:44:08.000Z","updated_at":"2025-03-04T12:31:02.000Z","dependencies_parsed_at":"2023-11-22T11:26:36.712Z","dependency_job_id":"c037555d-aef5-4ed7-b0ba-fd3813b63053","html_url":"https://github.com/omonomo/DefaultKeyBinding","commit_stats":null,"previous_names":["omonomo/defaultkeybinding"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omonomo%2FDefaultKeyBinding","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omonomo%2FDefaultKeyBinding/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omonomo%2FDefaultKeyBinding/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omonomo%2FDefaultKeyBinding/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/omonomo","download_url":"https://codeload.github.com/omonomo/DefaultKeyBinding/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246724801,"owners_count":20823544,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["default-key-binding","macos"],"created_at":"2025-04-01T22:49:30.363Z","updated_at":"2025-04-01T22:49:30.825Z","avatar_url":"https://github.com/omonomo.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# DefaultKeyBinding.dict サンプル\n\nmacOS用の DefaultKeyBinding.dict のサンプルです。\n\n## 概要\n\nmacOS では `~/Library/KeyBindings/DefaultKeyBinding.dict` にキーバインドの設定を入れておくと、Cocoa の標準テキストシステムを使用しているアプリケーションであれば共通のキー操作でテキストを編集をすることができます。  \nmacOS 限定であるため、人気のあるクロスプラットフォーム対応テキストエディタでは使えないのが残念ですが、いろいろなアプリケーションでちょっとした文章を入力することはよくありますので、使いやすい設定を入れておいて損は無いと思います。  \n\n書式等については、そんなに難しくないので \"DefaultKeyBinding.dict\" とか \"macOS Key Bindings\"、\"Cocoa Text System\" といったキーワードで調べてみてください。  \n注意点として、Control + N や Control + P (ほかにもあるかも) にシーケンス設定 (「移動」して「削除」する等の2つ以上の動作) を割り当てるとアプリケーションがクラッシュするようになります。MacOSX の初期からあるバグです。一旦設定ファイルを別の場所に移して編集し直しましょう。  \nまた設定しても動作しないキーバインドがいくつかあります。あきらめて別のキーに割り当てましょう。  \n変更した設定はアプリケーションを再起動しないと有効になりません。  \n\n## 設定集\n\n### 基本\n\n標準では単独押しでスクロール、Optionを押しながらで移動になっているキー (Home, End, PageUp, PageDown) の操作を逆にする  \n\n```\n\"\\Uf729\" = \"moveToBeginningOfDocument:\";\n\"\\Uf72b\" = \"moveToEndOfDocument:\";\n\"\\Uf72c\" = \"pageUp:\";\n\"\\Uf72d\" = \"pageDown:\";\n\n\"~\\Uf729\" = \"scrollToBeginningOfDocument:\";\n\"~\\Uf72b\" = \"scrollToEndOfDocument:\";\n\"~\\Uf72c\" = \"scrollPageUp:\";\n\"~\\Uf72d\" = \"scrollPageDown:\";\n```\n\n### マーク付け\n\nキャレットの位置にマークを付ける  \n\n```\n\"^a\" = \"setMark:\";\n```\n\nマークした位置から現在のキャレットまでを選択  \n\n```\n\"^b\" = \"selectToMark:\";\n```\n\nマークした位置までジャンプ\n\n```\n\"^c\" = (\n\t\"swapWithMark:\",\n\t\"centerSelectionInVisibleArea:\"  \n);\n```\n\n### 選択範囲の編集\n\n選択した文字を複製 (yank: を増やすとたくさん複製してくれます。コメントで区切り線を入れるとき便利)  \n\n```\n\"^a\"  = (\n\t\"setMark:\",\n\t\"deleteToMark:\",\n\t\"yank:\",\n\t\"yank:\"\n);\n```\n\n選択した文字を括弧等で囲む (記号類の一部はバックスラッシュでエスケープする必要があります。全角文字も入力できます)  \n\n```\n\"^a\" = (\n\t\"setMark:\",\n\t\"deleteToMark:\",\n\t\"insertText:\", \"\\(\", \"yank:\", \"insertText:\", \"\\)\"\n);\n\"^b\" = (\n\t\"setMark:\",\n\t\"deleteToMark:\",\n\t\"insertText:\", \"「\", \"yank:\", \"insertText:\", \"」\"\n);\n```\n\n### 単語の文字変換\n\nキャレットがある単語全体を大文字化  \n\n```\n\"^a\" = (\n\t\"setMark:\",\n\t\"uppercaseWord:\",\n\t\"swapWithMark:\",\n\t\"moveBackward:\",\n\t\"moveForward:\"\n);\n```\n\nキャレットがある単語の先頭のみ大文字化  \n\n```\n\"^b\" = (\n\t\"setMark:\",\n\t\"capitalizeWord:\",\n\t\"swapWithMark:\",\n\t\"moveBackward:\",\n\t\"moveForward:\"\n);\n```\n\nキャレットがある単語全体を小文字化  \n\n```\n\"^c\" = (\n\t\"setMark:\",\n\t\"lowercaseWord:\",\n\t\"swapWithMark:\",\n\t\"moveBackward:\",\n\t\"moveForward:\"\n);\n```\n\n### 文字単位の編集\n\nキャレットの前後の文字の入れ換え (上の設定と下の設定では編集後のキャレットの位置が異なります)  \n\n```\n\"^a\" = \"transpose:\";\n\n\"^A\" = (\n\t\"transpose:\",\n\t\"moveBackward:\",\n\t\"moveBackward:\"\n);\n```\n\n### 空行の追加\n\n行・段落の編集系はオートインデントと相性が悪いです。また文章の先頭や末尾であったり、文末に改行文字がない場合は上手く動作しない設定があります。  \n\n上に空行を追加  \n\n```\n\"^a\" = (\n\t\"setMark:\",\n\t\"moveToBeginningOfParagraph:\",\n\t\"insertNewlineIgnoringFieldEditor:\",\n\t\"swapWithMark:\",\n\t\"moveForward:\"\n);\n```\n\n下に空行を追加  \n\n```\n\"^b\" = (\n\t\"setMark:\",\n\t\"moveToEndOfParagraph:\",\n\t\"moveForward:\",\n\t\"insertNewlineIgnoringFieldEditor:\",\n\t\"swapWithMark:\"\n);\n```\n\n上に空行を追加してそこに移動  \n\n```\n\"^c\" = (\n\t\"moveToBeginningOfParagraph:\",\n\t\"insertNewlineIgnoringFieldEditor:\",\n\t\"moveBackward:\"\n);\n```\n\n下に空行を追加してそこに移動  \n\n```\n\"^d\" = (\n\t\"moveToEndOfParagraph:\",\n\t\"moveForward:\",\n\t\"insertNewlineIgnoringFieldEditor:\",\n\t\"moveBackward:\"\n);\n```\n\n### 段落単位の編集\n\n段落を削除  \n\n```\n\"^a\" = (\n\t\"selectParagraph:\",\n\t\"delete:\"\n);\n```\n\n段落を複製  \n\n```\n\"^b\" = (\n\t\"moveToEndOfParagraph:\",\n\t\"insertNewlineIgnoringFieldEditor:\",\n\t\"selectParagraph:\",\n\t\"delete:\",\n\t\"moveBackward:\",\n\t\"selectParagraph:\",\n\t\"delete:\",\n\t\"yank:\",\n\t\"yank:\",\n\t\"moveBackward:\"\n);\n```\n\n下の段落と結合  \n\n```\n\"^c\" = (\n\t\"moveToEndOfParagraph:\",\n\t\"deleteForward:\"\n);\n```\n\n段落を上に移動  \n\n```\n\"^d\" = (\n\t\"selectParagraph:\",\n\t\"delete:\",\n\t\"moveBackward:\",\n\t\"moveToBeginningOfParagraph:\",\n\t\"yank:\",\n\t\"moveBackward:\"\n);\n```\n\n段落を下に移動  \n\n```\n\"^e\" = (\n\t\"moveToEndOfParagraph:\",\n\t\"moveForward:\",\n\t\"moveToEndOfParagraph:\",\n\t\"insertNewlineIgnoringFieldEditor:\",\n\t\"selectParagraph:\",\n\t\"delete:\",\n\t\"moveBackward:\",\n\t\"moveToBeginningOfParagraph:\",\n\t\"moveBackward:\",\n\t\"selectParagraph:\",\n\t\"delete:\",\n\t\"moveToEndOfParagraph:\",\n\t\"moveForward:\",\n\t\"yank:\",\n\t\"moveBackward:\"\n);\n```\n\n### その他\n\n\"000\" を入力 (文字の入力は文字列であっても問題ありません)  \n\n```\n\"^a\" = (\n\t\"insertText:\", \"000\"\n);\n```\n\nスペースを入力してキャレットを元の位置に戻す  \n\n```\n\"^b\" = (\n\t\"setMark:\",\n\t\"insertText:\",\" \",\n\t\"swapWithMark:\"\n);\n```\n\nキャレットを10行上に移動 (Up だと移動が遅い、PageUp だと移動しすぎなときに便利)  \n\n```\n\"^c\" = (\n\t\"moveUp:\",\n\t\"moveUp:\",\n\t\"moveUp:\",\n\t\"moveUp:\",\n\t\"moveUp:\",\n\t\"moveUp:\",\n\t\"moveUp:\",\n\t\"moveUp:\",\n\t\"moveUp:\",\n\t\"moveUp:\"\n);\n```\n\n## リンク\n\n- [全角英数や半角カナが判別しやすい、文字間隔調整機能付き等幅フォント「Cyroit」](https://omonomo.github.io/Cyroit/): 合成フォントを作ってみました。\n- [小指の移動量が少ない日本語かな入力配列 「水草配列」](https://omonomo.github.io/Mizukusa/): オリジナル日本語かな入力配列を紹介しています。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomonomo%2Fdefaultkeybinding","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fomonomo%2Fdefaultkeybinding","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomonomo%2Fdefaultkeybinding/lists"}