プログラミングでDvorak配列を使いたい人のためのガイドライン

# Dvorak配列とは

我々が日常で使っているPCおよびMacはQwerty配列というキーボード配列が一般的。
Dvorak配列もキーボード配列の1種だが、Qwerty配列のように一般的には普及しておらず、この配列でタイピングができる人もごく少数と考えられます。
しかし、Dvorak配列はQwerty配列に比べて優れたアドバンテージがあり、これに惹かれてDvorak配列に転向する人がいるとかいないとか。

こちらがDvorakのキー配列。
<img width="295" alt="Dvorak.png" src="https://qiita-image-store.s3.amazonaws.com/0/254436/446cce9a-01c0-2359-3128-927333b9c085.png">
shift押下時。
<img width="303" alt="Dvorak_shift.png" src="https://qiita-image-store.s3.amazonaws.com/0/254436/4595bf2e-1d70-acfa-0631-8275561da9c7.png">

Dvorak配列の特徴として最も大きいのが「左指のホームポジションで母音5個が打てる」ということ。
右指で子音 -> 左指で母音、というスムーズな流れでタイピングでき、さらに左指はほとんど動かす必要がありません。
そのため指の運動量がQwerty配列に比べて少なく、指が疲れにくいです。
この恩恵は英語のタイピングだけでなく、日本語のローマ字入力でも非常に有効です。

さらにプログラミング的な利点を言うと、Qwerty配列では記号は右指で打つことが多く結構辛いが、
Dvorak配列は8種類の記号が左指の打ちやすい箇所に配置されており、しかもそれらはプログラミングで多用するものばかりなのでタイピングが捗ります。

私はQwerty配列から転向し今でもDvorak配列を使い続けていますが、
正直なところデメリットもそれなりにあり、一度覚えてしまうと意外と苦労することが多いです。
以下に私がDvorak配列を使っていった経験をもとに使用方法や苦労する点やらを書いていきます。

# Dvorak配列を使用する方法

Dvorak配列は専用のキーボード買わなきゃ使えない、というものではなく、
大抵の場合OSのキーボード設定にDvorak配列が含まれていることが多いので、
それをいじくるだけですぐに使えます。

## Macで使用する場合（High Sierraで確認）

### 英語の設定
システム環境設定 -> キーボード -> 入力ソース -> + で言語で英語を選択すると入力ソースにDvorakがあるのでそれを使います。
ちなみに入力ソースに複数のDvorak配列の種類が見られますが、
Dvorak+Qwerty⌘はDvorak配列だがショートカットはQwerty配列を使うというもの（ただし⌘だけでctrlは適用されない）。
Dvorak右手or左手用は片手でタイピングするための設定。

### 日本語の設定（ことえり）
システム環境設定 -> キーボード -> 入力ソース で標準のことえり日本語を選択し、
「英字のレイアウト」から配列をDvorakに変更できます。
ただしことえりのローマ字変換テーブルを後述のように設定する必要がありますが、これのやり方は調査していません。

### 日本語の設定（Google日本語）
英字のキーボード配列をDvorakに設定して、日本語をGoogle日本語のひらがなにしておけばOK。
ことえりと違い環境設定からローマ字変換がカスタムできるので、使うならこちらがオススメ。

## Windowsで使う場合
言語設定で英語 -> Dvorakを選択できますが、それよりも[DvorakJ](http://blechmusik.xii.jp/dvorakj/)というサードパーティーのプログラムを使うことを推奨。

プログラムを起動して直接入力および日本語入力をDvorakに設定すれば、キーボードの配列が書き換わります。

## Ubuntuで使う場合（16.04LTS デスクトップ版で確認）
システム設定 -> テキスト入力 -> + から、英語(Dvorak)を選択する。
直接入力をDvorakに変更するとMozc日本語もろともDvorakになるので注意。

## 全OS共通：Dvorakで日本語入力する場合
Dvorak入力の標準の状態だと、yは左指で打つポジションにあります。
そのためtyaなどゃゅょを伴う場合、左指を2回打鍵することになり、タイピングしづらいです。
なので日本語入力のローマ字変換テーブルに tha -> ちゃ のように右指2回左指1回で変換できるよう設定を書いておきましょう。
またkは左手のポジション内にあるため、cでカ行が打てるように設定するのも推奨。

# Dvorak配列を使って苦労する点

「一般的に浸透していない」ため故のギャップに泣かされることが多いです。
そんな悩みというか欠点を書いていきます。

## Qwerty配列で打つ機会が意外と多い

1人だけでプログラミングしている時ならDvorak配列を使うことは問題ではないですが、
他のPCのキーボードを触る機会があるためにQwertyを使わざるをえない場合があります。

それだけでなく、リモートデスクトップなどを使っていると、クライアント側のキーボードの設定がホスト側で反映されないので、
やっぱりQwertyを使わざるを得なくなる、なんてこともあります。

何より一番の問題は、Qwertyを使う時にQwertyにも慣れておかないと、じんましんが出そうなくらいタイピングが辛くなることです。
他言語を覚えた後に母国語が下手になるみたいなもので（？）、経験としてDvorakを一度覚えてしまうと、Qwertyで打つのが下手になります。

ちなみに普段私は英字はDvorak、日本語はQwertyで打つようにして、他方だけに依存しないようにしています。

## ショートカットが使いづらくなる

設定によってはショートカットはQwertyのままにもできますが、使っているOSやアプリケーションによってその設定ができない・効かないことが割とあります。
（一般的なブラウザなどなら問題ありませんが）

例を挙げると、私はMacでRuby用のIDEであるRubyMineを使っているが、RubyMineはショートカットがQwertyの通りに働いてくれません。
なので私はショートカットでできる操作をファイルメニューもしくは右クリックから行うことが多いです。

## パスワードの登録でやらかす

パスワードを入力する場合、大抵の場合***などで入力内容が伏せられますね。
これで困るのは、今自分が打っているキーボードの配列がタイピングしててもわからない、といいうことです。
そのため、Dvorakで打っていたつもりが実はQwertyだったために、登録したパスワードが意図しないものになっているということが起こり得ます。
こうなった場合、キーボード配列から逆算してパスワードを当てたりします。

しかも、Dvorakに設定しているのに環境設定画面に限ってはQwertyに戻る、なんてことは普通にあるので、
私はパスワードを登録するときだけはQwertyで打つなどの工夫をしています。

# 最後に

なんだかDvorak配列の悪い点ばかり述べてきたようですが、実際苦労することが多いです。
しかしプログラミングの快適さは間違いなくQwertyより上なので、プログラマを増やすためにはこのキーボード配列を無理やり浸透させるのもいいんじゃないかと時々思います。
現在浸透しているキーボード配列に囚われたくない酔狂な人は、この記事を参考にDvorak配列に挑戦してみるといいかもしれないですね。