読者です 読者をやめる 読者になる 読者になる

イメージに染まるまで……

Mac,iOSなどAppleの製品についての記事や、セキュリティだったりGTDの記事を書いています。

DefaultKeyBindings.dictを使ってOSXのキーバインドを変更する 〜 part 1 基本編

Mac Tips

はじめに

キーボード操作はPCの操作の基本的なものの一つですが、特に熟達すればするほどショートカットキーを利用して、操作スピードを上げることになります。

だからこそ、キーボード操作が自分の思い通りになるかならないかは、体感としてPCを操作するときのレスポンスに関わってくるわけです。特に、最近のPCの動作スピードは飛躍的な伸びを見せなくなってきていて、体感速度が重要になってきていると言えるでしょう。

ここでは、OSXのキーボードショートカットの一部であるCocoaKeyBindをおさらいし、さらに自分好みのキーバインドを設定してみたいと考えています。

それと、OSX自体がかなり多くのキーボードショートカットを持っています。一般的なShift,tab,control,fanctionのほかに、OSX独自のCommand(昔はAppleマークでした)、Windowsでいえばaltにあたるoptionなどがあります。

これらを組み合わせたものがショートカットとなるわけですよね。

command + Sで保存したり、それにoptionを加えると別名で保存になったり、もっと複雑なものもありますし、私の場合はQuicksilverで独自のキーボードショートカットを作っていることもあります。

こうしたキーボードショートカットの他に、文字入力の際に利用することのできるキーの組み合わせ他があります。それをここではキーバインドと呼ぶことにします。

例えば、control + f でカーソルを動かしたりすることです。

この記事は、かなり長くなりそうので、Part 1とPart 2に分けることにしました。

Part1では基本のCocoa Key Bindをおさらいして、Part2ではDefaultKeyBindings.dictに関して触れます。それと、ここでは私の使っている設定を公開します。

では、はじめましょう。

OSXCocoa Key Bind

まずは、OSXがはじめから持っているキーバインドを振り返ります。

多くがEmacsのカーソル移動と同様で、Emacsを利用している場合には分かりやすいですし、逆にCocoa Key Bindを習得した方なら、Emacsにおける学習曲線が多少緩やかになるところです。

OSXCocoa Key Bindで基本的なcontrol + pnfbが利用出来ます。

control + pで前の行へ、control + nで次の行へ、control + fでカーソルを前に動かし、control + bでカーソルを後ろに動かします。

f:id:nya-0:20150328173620g:plain

また、control + tで前後の文字を入れ替えることが可能です。

f:id:nya-0:20150328173638g:plain

control + oで次の行にカーソルを移動せずに、下の行を追加することができます。

f:id:nya-0:20150328173702g:plain

キーは動いていませんが、control + oで行が追加されたのが分かるでしょうか。

それと、実はcontrol + kyでキルリングとヤンクが利用出来ます。

キルリングとヤンクは通常のcommand + c, xでのコピー or カットとは別のところに格納されるらしく、競合しません。

f:id:nya-0:20150328174220g:plain

control + kでカーソルから行末までのキル(カットのようなもの)。

control + yでヤンク(キルリングにあるものを貼り付け)です。

ことえりに関して言うと、結構ショートカットが柔軟で、特に変換範囲選択のcontrol + q,wで変換範囲の変更が出来るのが素晴らしいと感じています。

ことえり以外のIMだと、一度変換範囲が決定した場合、Shift + 矢印キー左右で範囲を変えることが多いです(もちろんことえりでも可能)。

しかし、それだとホームポジションから手が離れてしまいます。control + q, wを利用すれば、ホームポジションから手を離さずに変換範囲を変更出来るわけです。

f:id:nya-0:20150328175122g:plain

control + qで選択範囲を縮め、control + wで選択範囲を広げる操作になります*1

このように、OSXCocoa Key Bindだけでもかなり入力を加速させることが出来ます。入力はiOSでの入力も考えて、ことえりの辞書にすることに。

ただ、もちろん不満はあるのです。

例えば、control + mが、変換の確定だけではなく、新しい行の追加まで出来たら……と思ってしまいます。つまり、return(Enter)と同じ役割まで果たすことができればと感じます。これは、Emacsを触っていると感じることでした。

これが便利なので、OSXの通常のキーバインドにもこの機能を加えたい!

しかし、それは可能なのでしょうか?

できます。~/Library/KeyBindings/DefaultKeyBindings.dictというファイルに書き込むことで可能なのです。

さあ、ここでPart2へと続きます。

*1:私がことえりの辞書を鍛えて他のIMに移らない理由がここです。

ATOKなどではこのキーに別の機能が割り振られているのを見て、移行をやめにしました。

現行のPCの日本語入力は、予測変換です。(SKKは除く)だから、自分の意図しないところで変換をしてしまうことが多いのです。

だからこそ、意図していない変換を一瞬で修正出来るかどうかはキーボード入力を高速で行うにあたって重要なところとなります。意図しない変換は、ATOKであろうと、かわせみであろうと、Google日本語入力であろうと起こり得ます。それを一瞬で修正する、そこに優位性があると私は考えています。

それに、今ではことえりの辞書とiOSの辞書は同期します。ことえりを鍛えておくと、iOSでの入力も捗ることになるので、それも考えて日本語入力システムを利用しているのです。