あなたの知らないキーボード拡張の世界

あなたの知らないキーボード拡張の世界

初めまして、エンジニアの山納です!

突然ですが皆さん、 *キーボード配列* や *入力方式* は何をお使いでしょうか?
恐らく、大多数の方々が *QWERTY + ローマ字入力* なのではないかと思います。
しかしながら、世の中では少数ながらも、別の配列を使っている人たちが存在します。
数で見ると少数派ですが、この中には実に多くの配列や入力方式が入り混じっているのです。

今後の人生で何度キーボードが変わろうとも、キーボード配列はそう何度も変わりません。
そんな、まさに人生の伴侶とも言えるのがキーボード配列です。
好きなエディタで争うよりも、好きなキーボード配列で争いましょう!

とは言え、いきなりQWERTYから乗り換えるのはハードルが高いと感じることでしょう。
そこで今回は *QWERTYのままでも使える* 入力上の工夫を中心にご紹介したいと思います!

h2. 環境

まずは私の使っている配列と入力方式、そしてそれを実現しているソフトウェアの紹介です。
特に必要が無ければ、このまま次の章まで読み飛ばしていただいても構いません。

h3. 配列

私が使っている配列は、Dvorakという配列をベースに、更にそこから派生した配列です。
名前を *Programmer Dvorak* と言います。
名前からわかるように、プログラマに向けて作られた配列です。
派生もとのDvorakという配列は、世界ではQWERTYに次いで使用人口が多いとも言われています。

pdvorak

詳細なキー配列は下記のページを参考にしてください。

http://www.kaufmann.no/roland/dvorak/

h3. 入力方式

使っている入力方式は、 *ACT09* というDvorak配列向けの入力拡張です。
基本的な入力規則はローマ字入力をベースとしています。
通常のローマ字入力との違いは、通常のローマ字入力では使わない、子音と子音の組み合わせにも入力が割り振られている点です。

キーマップは下記のページを参考にしてください。

http://www1.vecceed.ne.jp/~bemu/act/act09_doc.html

h3. ソフトウェア

そして前述の入力方法を実現しているのが、 *DvorakJ* というキーマッピングソフトウェアです。
名前だけ見るとDvorak系配列に特化しているように思えますが、そういう訳ではありません。
Dvorak系以外にも数多くの配列がデフォルトで対応されています。

詳細は下記のページを参考にしてください。

http://blechmusik.xii.jp/dvorakj/

私はDvorakJを利用して入力環境を実現していますが、他にも方法は存在します。
例えば、IMEの設定でキーマップを変更するなどです。
また、Ergodoxなどのハードウェア側でキーマップが可能な製品を使うのも、一つの手段になるでしょう。

h2. 入力拡張の紹介

それではいよいよ、各種の入力拡張について紹介していきます!

h3. SandS

1つ目は *SandS (Space and Shift)* です。

これは名前の通り、スペースキーにシフトキーの機能を持たせる拡張です。
具体的に説明しましょう。
まず、スペースキーを押しながら任意のキーを入力した場合は、シフトキーとして扱われます。
また、スペースキーを押し下げてから何もせずに離した場合は、通常通りスペースが入力されます。
「Dvorak」と入力する場合は「[Space+d] vorak」のように入力すれば良いわけです。

sands

この拡張はスペースキー以外の部分に影響が無いため、配列によらず簡単に導入できます。
また、導入後の練習コストが非常に低いのもメリットです。
エンジニアは英字を打つ機会が多いため、特に効果が実感できると思います!

h3. 数字と記号の置換

2つ目は *数字と記号のShift入れ替え* です。

QWERTYやDvorakなどの一般的なキー配列では、Shift+数字キーで記号が入力できるようになっています。
これを、Shiftを押さずにそのまま記号が入力できるように、数字と記号を入れ替えてしまうのがこの拡張です。
数字を入力するときは、Shiftキーを押しながらいつものキーを押すことで入力します。
「!」を入力する場合は「Shift+1」ではなく「1」だけで良いということですね。

snumber

プログラミングにおいては、数字を入力する回数はそれほど多くはありません。
数字を入力するよりも、記号を入力する回数のほうが圧倒的に多いです。
そのため、この拡張もエンジニアにとって非常に有益な拡張となっています!

h3. 撥音拡張

3つ目は *撥音拡張* です。

撥音とは、端的に言ってしまうと「ん」のことです。
日本語の文章において「×ん」という2文字の組み合わせは比較的よく見られます。
より厳密に分解すると「[子音]+[母音]ん」のようなパターンが度々文中に見られます。
このパターンを2打で打てるように [ann] [inn] [unn] [enn] [onn] のキーを導入するのが、この撥音拡張です。
例えば、「sannnenkan(三年間)」は「s [ann] n [enn] k [ann]」のように、6打で入力できます。

問題はこの [(aiueo)nn] キーの割り当てです。
これは、一般的には [aiueo] の1つ下のキーにそれぞれ割り当てることが多いです。
具体的に言うと [a] の下の [z] のキーを [ann] のキーとして扱うということになります。
先ほどの例で言うと「三年間」は「szndkz」と打てば入力できるわけですね。

hatsuon

この拡張は [sz] [nd] [kz] のような子音と子音の組み合わせに、文字が割り当てられていないからこそできる拡張です。

h3. 二重母音拡張

4つ目は *二重母音拡張* です。

二重母音というのは、2つの母音が繋がって1つの音に聞こえる部分のことです。
「saikou(最高)」の「s [ai] k [ou]」の部分がそうですね。
この二重母音のうち、頻度の高いものを新しくキーに割り当てるのが今回の拡張です。
具体的によく使われるのは [ai] [ui] [uu] [ei] [ou] などになります。

例文を見てみましょう。
「本日は晴天なり」をローマ字で打つと「honzituhaseitennnari」で20文字です。
これを拡張を交えて打つと「h [on] zituhas [ei] t [enn] nari」で16文字になります。

前回の撥音拡張と同様に、二重母音拡張もどのキーに割り当てるかの問題があります。
各母音の下のキーは撥音拡張で使ってしまっているため、同じようには割り当てられません。
基本的には [a] であれば [q] など、下以外の近隣のキーに割り当てることが多いようです。

h3. その他、頻出語句拡張

最後、5つ目は *その他の拡張、頻出語句拡張* です。

日本語には撥音や二重母音以外にも、頻度の高いパターンがいくつか存在します。
「さく」「しく」「なく」「もく」といった「[子音]+[母音]く」の形。
「しゅう」「しょう」「きゅう」「みょう」といった「[子音]+yuう」「[子音]+yoう」の形。
これらのパターンを、撥音拡張や二重母音拡張のように、別のキーに割り当てることで利用します。

また、パターンではなく頻度の高い語句もあります。
「です」「ます」「した」「こと」などがそれです。
今までの拡張とは違い、これらは母音ごとに割り当てるわけではありません。
そのため、「ds(です)」「ms(ます)」「st(した)」「kt(こと)」のように、連想しやすい組み合わせにします。

h2. QWERTYでの利用

今回は5つの拡張を紹介しましたが、全て自力で考えるのは大変かもしれません。
そこで、QWERTYでそれぞれの拡張を利用可能にする *AZIK* という入力拡張を使うことをオススメします。

http://hp.vector.co.jp/authors/VA002116/azik/azikinfo.htm

また、同じくQWERTYで使える入力拡張として *チーズタイピング* という拡張も存在します。

http://www.eonet.ne.jp/~sawayaka/

どちらも、環境の節でご紹介した *DvorakJ* を利用することで簡単に試すことが可能です。
SandS などの簡単な拡張だけであればQWERTYのまま利用することもできます。
今回を機に、是非、配列について考え直してみてください!

h2. 終わりに

今回は私が使っている配列と入力拡張をベースに、その機能の一部をご紹介しました。
QWERTYで利用できる機能という前提だったため、残念なことに、今回紹介できたものは全体の一部にしか過ぎません。

また、配列や入力拡張自体は他にも無数に存在しています。
「Maltron」や「親指シフト」、「下駄配列」、「Phoenix」。
そして漢字を変換せずに直接入力する「漢直」系統の色々など。
ベースはQWERTYから乗り換えなくとも、それらの工夫をQWRETYに取り入れることは十分可能です!

この記事を目にした皆さんの入力が、より快適になることを願っております!