1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

「英数&かな」の親指キーバインドを提唱します(カーソル操作編)

Last updated at Posted at 2020-06-20

言いたいことは次のとおりです。

  • キーバインド・ツールを使って 「オリジナル・ショートカット」を作成しよう。
  • キーバインドに英数 & かなキーを活用すれば、PC操作が快適になります。

英数 & かな、すなわち親指を活用します。
よって親指キーバインドです。

環境

Macを対象とします(Windows版は後日執筆予定)。
キーバインドツールには、Karabiner-Elements(カラビナ)を使用します。
また英数 & かなを使用するので「JISキーボード」が前提です。

私の環境

  • macOS 10.12.6
  • Karabiner-Elements 12.8.0

キーバインドとは?

キーバインドとは、キー押下に対し、特定の操作を割り当てることです。
「自分専用のショートカットキーを設定する」と言ったほうが伝わりやすいかもしれません。
たとえば、Command + @ で、上下の文章を入れ替えるなんてこともできます。

親指キーバインドとは

英数 & かなに注目してみましょう。
入力言語を切り替えるためのキーです。
重要な操作だけど、用途が限定的です。
Command よりも押しやすいのに、もったいないですよね。

この 英数 & かな の用途を増やしませんか?
キーバインドで、ショートカットに使ってみませんか?
それが親指キーバインドです。

カーソル操作のキーバインドを最初にしよう!

カーソルの上下左右の移動操作を最初に設定しましょう。
具体的には 、英数 + H カーソルを動作するようにします。
同じように、「英数 + J」、「英数 + K」、「英数 + L」という風に動作させます。

なんでわざわざこんなことするのでしょうか?
カーソル操作の度に手を移動させたくないからです。
手をホームポジションに固定することで、PC操作は快適になるのです。
とくにVim ユーザーであれば、H``J``K``L カーソル移動の有用性に納得してくれるでしょう。

キーバインドツールの設定方法

Karabinerについて

Karabiner(カラビナ)というツールを利用します。
キーバインドを設定するためのツールです。
「Karabiner」のインストール・基本操作は、他記事をご参照ください。

本稿では、キーバインド(オリジナル・ショートカット)の設定内容を紹介します。
キーバインドは、全てVimの操作コマンドにちなんでいます。
気に入らなければ、好きなように設定しなおせばOKです。

なお設定ファイルはGistに公開しています。
インストール後にこの設定をコピペすれば、本記事で紹介しているキーバインドを再現できます。

前準備:「英数」を補助キーに設定

さっそくですが、英数はキーバインドの補助キーとして使用できません。
CommandShift は、当然、補助キーとして利用可能です。
でも英数はダメなのです。

よって、英数を利用するための裏技が必要になります。
まずはそれをやってしまいます。

具体的には、英数Optionの代理キーに設定します。
Optionであば補助キーとして利用可能です。

Karabinerの設定は下記のとおりです。
ここでやっていることは、

  • 英数と他キーを同時に押したら、補助キーとして機能する。
  • 英数だけ押下したら、入力モードを英数に切り替える (本来の役割のまま)。
karabiner.json(rules)
{
  "description": "英数キーを補助キー(option)に設定",
  "manipulators": [{
    "from": {
      "key_code": "japanese_eisuu",
      "modifiers": {
        "optional": [
          "any"
        ]
      }
    },
    "to": [{
      "key_code": "left_option"
    }],
    "to_if_alone": [{
      "key_code": "japanese_eisuu"
    }],
    "type": "basic"
  }]
}

※上記を[rules]キーの配列中にマージすればOKです。

「英数 + H / J / K / L 」で、上下左右移動

基本のキーバインドです。
ホームポジションから1ミリも動かないまま、上下左右のカーソル移動をできるようにします。

キー 動作 覚え方
英数 + H Vimの基本キーバインドと同じ
英数 + J 同上
英数 + K 同上
英数 + L 同上
設定ファイルの内容
karabiner.json(rules)
{
  "description": "英数 + H/J/K/L = カーソル移動",
  "manipulators": [{
      "from": {
        "key_code": "h",
        "modifiers": {
          "mandatory": [
            "left_option"
          ],
          "optional": [
            "any"
          ]
        }
      },
      "to": [{
        "key_code": "left_arrow"
      }],
      "type": "basic"
    },
    {
      "from": {
        "key_code": "j",
        "modifiers": {
          "mandatory": [
            "left_option"
          ],
          "optional": [
            "any"
          ]
        }
      },
      "to": [{
        "key_code": "down_arrow"
      }],
      "type": "basic"
    },
    {
      "from": {
        "key_code": "k",
        "modifiers": {
          "mandatory": [
            "left_option"
          ],
          "optional": [
            "any"
          ]
        }
      },
      "to": [{
        "key_code": "up_arrow"
      }],
      "type": "basic"
    },
    {
      "from": {
        "key_code": "l",
        "modifiers": {
          "mandatory": [
            "left_option"
          ],
          "optional": [
            "any"
          ]
        }
      },
      "to": [{
        "key_code": "right_arrow"
      }],
      "type": "basic"
    }
  ]
}

「英数 + I / A 」で、カーソルを行末・行頭移動

カーソルを編集中の文章の行末・行頭に移動させます。
これで左右のカーソルを連打しなくて済みますね。

キー 動作 覚え方
英数 + I 行頭へ移動 Insert at the begining of the line
英数 + A 行末へ移動 Append at the end of the line
設定ファイルの内容
karabiner.json(rules)
{
  "description": "英数 + I/A = 行頭・行末ジャンプ",
  "manipulators": [{
      "from": {
        "key_code": "i",
        "modifiers": {
          "mandatory": [
            "left_option"
          ],
          "optional": [
            "any"
          ]
        }
      },
      "to": [{
        "key_code": "left_arrow",
        "modifiers": "left_command"
      }],
      "type": "basic"
    },
    {
      "from": {
        "key_code": "a",
        "modifiers": {
          "mandatory": [
            "left_option"
          ],
          "optional": [
            "any"
          ]
        }
      },
      "to": [{
        "key_code": "right_arrow",
        "modifiers": "left_command"
      }],
      "type": "basic"
    }
  ]
}

「英数 + F / B」で、ページの上下スクロール。

ページを上下にスクロールさせます。
文章の編集中であれば、画面範囲外にカーソルをジャンプさせます。
Fなら下にジャンプ、Bなら上にジャンプです。

キー 動作 覚え方
英数 + F ページスクロール Forward to the next location
英数 + B ページスクロール(戻る) Back to the previous location
設定ファイルの内容
karabiner.json(rules)
{
  "description": "英数 + F/B = ページスクロール",
  "manipulators": [{
      "from": {
        "key_code": "f",
        "modifiers": {
          "mandatory": [
            "left_option"
          ],
          "optional": [
            "any"
          ]
        }
      },
      "to": [{
          "key_code": "page_down"
        },
        {
          "key_code": "page_down",
          "modifiers": "left_option"
        }
      ],
      "type": "basic"
    },
    {
      "from": {
        "key_code": "b",
        "modifiers": {
          "mandatory": [
            "left_option"
          ],
          "optional": [
            "any"
          ]
        }
      },
      "to": [{
          "key_code": "page_up"
        },
        {
          "key_code": "page_up",
          "modifiers": "left_option"
        }
      ],
      "type": "basic"
    }
  ]
}

「英数 + G」で、ページの先頭・末尾へジャンプ

ページの一番上へジャンプします。
また、Shift + G で、末尾へジャンプします。

キー 動作 覚え方
英数 + G ページ先頭へ移動 Go to the first line
英数 + Shift + G ページ末尾へ移動 上記の逆
設定ファイルの内容
karabiner.json(rules)
{
  "description": "英数 + G = ページ先頭ジャンプ",
  "manipulators": [{
      "from": {
        "key_code": "g",
        "modifiers": {
          "mandatory": [
            "left_option"
          ]
        }
      },
      "to": [{
        "key_code": "up_arrow",
        "modifiers": "left_command"
      }],
      "type": "basic"
    },
    {
      "from": {
        "key_code": "g",
        "modifiers": {
          "mandatory": [
            "left_option",
            "shift"
          ]
        }
      },
      "to": [{
        "key_code": "down_arrow",
        "modifiers": "left_command"
      }],
      "type": "basic"
    }
  ]
}

「英数 + O」で、新しい行の挿入

現在のカーソル位置の下に新しい行を挿入します。
また shift + Oで、上に新行を挿入します。

これもVim由来。
使えば意外と便利と気づく機能ですね。

キー 動作 覚え方
英数 + O 新しい行の挿入 Open a new line
英数 + Shift + O 新しい行の挿入(上側に) 上記の逆
設定ファイルの内容
karabiner.json(rules)
{
  "description": "英数 + O = 新行挿入",
  "manipulators": [{
      "from": {
        "key_code": "o",
        "modifiers": {
          "mandatory": [
            "left_option"
          ]
        }
      },
      "to": [{
          "key_code": "right_arrow",
          "modifiers": "left_command"
        },
        {
          "key_code": "return_or_enter"
        }
      ],
      "type": "basic"
    },
    {
      "from": {
        "key_code": "o",
        "modifiers": {
          "mandatory": [
            "left_option",
            "shift"
          ]
        }
      },
      "to": [{
          "key_code": "left_arrow",
          "modifiers": "left_command"
        },
        {
          "key_code": "return_or_enter"
        },
        {
          "key_code": "up_arrow"
        }
      ],
      "type": "basic"
    }
  ]
}

補足:デフォルトのキーバインドと何がちがう?

じつはMac、カーソル移動のキーバインドをすでに用意しています。
たとえば「Control + P」、「Control + F」といった具合です。
でも、「英数 +H``J``K``L」には、以下の利点があります。

  • 押しやすい。
  • ブラウザなどで、ページスクロールができる。

次回

かなを利用した、編集操作のキーバインドを紹介します。
具体的には、ReturnDeleteのショートカットを作成します。

「なぜ削除キーまでキーバインド?」って思うかもしれません。
でも、ホームポジションを維持したまま編集操作を行うことで、PC操作が快適になるんです。

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?