macbook

日本語であればIMEの言語切り替えというのは避けて通れません。 自分の1日のキーボードのタッチを分析してみても、「英数」と「かな」の切り替え作業を相当しています。ましてVimなどのツールを利用する場合、移動がコマンドに切り替わるため、Vim上で例えば日本語の文書を書くなどする場合であれば、さらに余分に切り替えていかなければなりません。

極論英語だけで思考も文書も全てやりとり出来れば超高速に物事が進むと思います。しかし、この文書を日本語で読むことが快適に感じる皆様の通り、日本をベースに育ってしまった以上、我々の思考のベースは日本語にあり、この世界観の中で無理やり英語で全てを完結させるのは非常に難しいです。

このような「かな」と「英数」の切り替えをキーボードでやらなければならない、という前提を立てた時にどのようなキーボードの切り替え方法がスムーズに出来るのか今回考えてみました。

前提として英字配列キーボード

プログラマーの方であれば、英字のキーボードを愛する人は多いと思います。ムダな刻印がなくてシンプルという理由もあるかと思いますが、一番大きな所はプログラミング自体が英語ベースで作られることもあり、どうしても英字配列のほうが便利です。

英字配列のキーボードをMacで利用する場合、デフォルトでは切り替え方法が「Command + Space」となっているはずです。これ自体も非常にボタンが押しやすい箇所があり、なかなか便利です。ただ、なかなか不便な所もあります。

人間はあまり色々覚えられない

意外と多いイライラは「かな入力したいのに英数モードになってる」「英数を入力したいのに、かな入力モードになっている」ということだと思います。例えばAlfredなどを起動する場合でも、ショートカットから文字入力が起動しますが、基本的にアプリなどを立ち上げたい場合は半角英数モードで入力を開始したいはずです。ただそういう時に限り、日本語入力モードになっていたりします。

もちろん意図する状態になっていないことに気づいてから、Command + Spaceで言語の切り替えを行うことは出来ます。しかしフラストレーションは非常にたまります。

そもそも一つ前の言語が何かを把握していれば、なんらCommand + Spaceの動作でも問題ないはずです。しかし、文書を勢いよく書いていると全くそれがどちらなのか分からなくなります。画面に向かって張り付いているときは大丈夫ですが、例えば少しディスプレイから目を離したりするだけで、簡単にどちらの言語の状態なのか分からなくなります。それくらい人間の脳というは適当で注意を払いきれません。

言語の切り替え方法とその利点

こうした点からも日本語配列の「かな」ボタンのような挙動は非常に強力です。前回の状態など関係なしに、とりあえず日本語に切り替えてくれます。半角キーも同様で、状態を関係なしに必ず半角英数に切り替えてくれます。すなわちステートレスと言えます。そのため、もし前回の言語の状態を把握していればそのまま使えばいいですし、忘れてしまえばとりあえず「かな」ボタンを押すことで確実に日本語入力からスタート出来ることを保証できます。

ではトグル挙動をする英字キーボードの動きは非効率でしょうか?こちらもこちらのメリットがあります。頭で考えなくても切り替えが出来ます。 我々は文書を入力するタイミングで毎回「今から日本語を入力します」「今から英数を入力します」などと意識するのは多少負担がかかります。それであればボタンを一つに統合して、「今利用してる言語」「それじゃない言語」という切り替えにシンプルに統一したほうがより脳の負担がありません。

では最高の方法は何か

結論から言えば、2つの切り替え挙動をMIXした時に最高な切り替え方法を得ることが出来る。ということです。すなわち、「かな」「半角英数」の挙動と、デフォルトのトグル切り替えの挙動の両者をキーボードにアサインすればいいわけです。

キーボードをタイプしていて言語の状態が何なのか忘れてしまった時であれば、「かな」「英数」キーを叩きゼロベースで言語を切替、理解している時であればトグル挙動で頭に負担を書けずに切り替えます。

これを実現するためにはデフォルトの設定では出来ないため、Karabinarというアプリケーションを利用します。 Vimの生産性を一撃で高めるシンプルなテクニックの記事でもご紹介したOSのキーリピートを高められるツールです。

本当によくぞわかっている、という設定がデフォルトで内包されています。

  • Command_L to Command_L + When you type Command_L only, send EISUU
  • Command_R to Command_D + When you type Command_R only, send KANA

左右のCommandキーを単体で叩いた時に、それぞれ「英数」「かな」を単体の独立したキーとして挙動してくれます。実はCommandキーというのは必ず組み合わせのキーコマンドを前提としているため、単体で叩くことは意外と使われていません。ここに我々が最もよく使う言語切替をアサインしてしまいます。