言いたいことは次のとおりです。
- キーバインド・ツールを使って 「オリジナル・ショートカット」を作成しよう。
- キーバインドに
英数
&かな
キーを活用すれば、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に公開しています。
インストール後にこの設定をコピペすれば、本記事で紹介しているキーバインドを再現できます。
前準備:「英数」を補助キーに設定
さっそくですが、英数
はキーバインドの補助キーとして使用できません。
Command
やShift
は、当然、補助キーとして利用可能です。
でも英数
はダメなのです。
よって、英数
を利用するための裏技が必要になります。
まずはそれをやってしまいます。
具体的には、英数
をOption
の代理キーに設定します。
Option
であば補助キーとして利用可能です。
Karabinerの設定は下記のとおりです。
ここでやっていることは、
-
英数
と他キーを同時に押したら、補助キーとして機能する。 -
英数
だけ押下したら、入力モードを英数に切り替える (本来の役割のまま)。
{
"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
|
→ |
同上 |
設定ファイルの内容
{
"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 |
設定ファイルの内容
{
"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 |
設定ファイルの内容
{
"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
|
ページ末尾へ移動 | 上記の逆 |
設定ファイルの内容
{
"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
|
新しい行の挿入(上側に) | 上記の逆 |
設定ファイルの内容
{
"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
」には、以下の利点があります。
- 押しやすい。
- ブラウザなどで、ページスクロールができる。
次回
かな
を利用した、編集操作のキーバインドを紹介します。
具体的には、Return
やDelete
のショートカットを作成します。
「なぜ削除キーまでキーバインド?」って思うかもしれません。
でも、ホームポジションを維持したまま編集操作を行うことで、PC操作が快適になるんです。