MacからWindowsに乗り換える人のためのキーボード戦略(JIS)

# はじめに
やんごとなき事情（就職）により，2020年4月からWindowsを使うことになってしまったエンジニアです．
今まではずっとMacを使っていたので，キーボード配列や使えるキーバインドの違いから戸惑うことが多々ありました．
しかし，最近はようやくWindowsでストレスなく開発できるような環境を整えることができたので，その内容を共有したいと思います．
（なお，本稿はMacでJISキーボードを使っている方を想定しております．）

# キーボード戦略
まず，下の画像を見てください．
![MacとWindowsのキーボードの違い](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106956/85e8052e-5166-516e-0973-624b7f3790ca.png)

MacとWindowsの操作感の違いはキーボードの違いにあると思います．
上の画像のように，Ctrlキーの場所の違いや，存在するキー（Cmd/Windowsキーとか）も，IMEの切り替え方も違います．
これを解決するのが，快適に使うためのポイントではないでしょうか．

そこで，

- キーボード配列の設定
- キーバインドの設定
- IME切り替えの設定

について順番に設定をしていきましょう．

## まずはキーボード配列をMacライクに
MacとWindowsのキーボードの一番の違いは，修飾キー（Ctrl, Alt, Windows, CapsLock）の場所です．
また注目すべきポイントは，MacでCmdキーを使って行う操作は，WindowsではCtrlキーを使う操作になっているということです．

以上を踏まえて，キー設定を変更していきます．

### Change Keyによるキー設定の変更
変更には[Change Key](https://forest.watch.impress.co.jp/library/software/changekey/)というソフトを使うと良いです．
ダウンロードし，.lzhファイルを解凍します．
ChgKey.exeというファイルが出現するので，右クリックから管理者として実行を選択してください．

![Change Keyの画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106956/d153c197-c8f9-d581-f055-5a96b8e073ce.png)

すると，上のようにキーボードの画面が現れるので，
**変更するキーを選択 => 変更後のキーを選択**
の流れで設定を行っていきます．

また，**キー設定が完了したら，メニューバーの「登録(R)」から登録の確定を必ずしてください．**
登録をしないと，キー設定が反映されません．

設定は下の表の通りに行ってください．

変更するキー | 変更後のキー
---|---
Altキー | Ctrlキー
左Windowsキー | Altキー
Ctrlキー | CapsLockキー
CapsLockキー | F13キー
カタカナひらがなキー（右Windowsキーがない場合に設定） | 右Windowsキー

ただし，**F13キーはキーボード上にないため，Change Keyで変更するキーとしてCapsLockをクリック後，右上のScan codeを押し，`0064`と入力してOKボタンを押してください．**

![Scan codeの設定](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106956/e1e66a0b-f8a4-8c4f-040f-dc0c6ce05aa4.png)
参考：[ChangeKeyを使用してWindowsキーをF13キーに変更する方法 - 情報科学屋さんを目指す人のメモ（FC2ブログ版）](http://did2.blog64.fc2.com/blog-entry-349.html)

ポイントはF13キーをCapsLockキーに割り当てること．
これが，後述するAutoHotkeyの設定で効果を発揮します．

## AutoHotkeyでMacキーバインドを使えるようにする
Ctrl-FやCtrl-Bなどのemacs的キーバインドがテキスト入力で使えることは，Macの一つのアドバンテージだと個人的に思っています．
これが使えないのが苦痛で仕方ないので，[AutoHotkey](https://www.autohotkey.com/)というソフトを使って使えるようにしてしまいましょう．

AutoHotkeyのインストーラーをダウンロードし，いつもの通りインストールを行います．
その後，以下の内容をコピーし，`MacintoshKeybind.ahk`など適当な名前で適当な場所に保存します．

```MacintoshKeybind.ahk
/* カーソル移動のキーバインド */
F13 & P::Send,{Up}
F13 & N::Send,{Down}
F13 & B::Send,{Left}
F13 & F::Send,{Right}
F13 & A::Send,{Home}
F13 & E::Send,{End}

/* テキスト編集のキーバインド */
F13 & O::Send,{End}{Enter} ; 改行
F13 & H::Send,{Backspace} ; Backspace
F13 & D::Send,{Delete} ; Delete
F13 & K::Send,{ShiftDown}{End}{ShiftUp}^x ; キル（一行切り取り）
F13 & Y::Send,^v ; ヤンク（ペースト）
F13 & T::Send,{ShiftDown}{Left}{ShiftUp}^x{Right}^v{Left} ; カーソル前後の文字を入れ替え

/* ターミナルなどで使えるキーバインド */
F13 & L::Send,^l ; ターミナルの画面をclearする
F13 & C::Send,^c ; 中断: Ctrl-C
F13 & [::Send,{Esc} ; vimでコマンドモードに戻る用

/* アプリケーションを終了させる（Cmd-Q) */
Ctrl & Q::Send,!{F4}

/* ファイル削除: Delete */
RWin & BS::Send,{Delete}

/* 右シフト横のろキーを押したときに¥マークではなく，_が入力されるようにする */
vkE2::Send,_
```

そして，このファイルのショートカットをスタートアップフォルダに入れておきます．
すぐにこのキーバインドを使いたい場合は，.ahkファイルをダブルクリックして起動させてください．

**これで，あなたもMacライクなキーバインドが使えるようになりました！**

## IME切り替えの設定
残る問題はIMEの切り替えです．
Macの英数やかなキーでの切り替えに慣れていると，Windowsの全角/半角キーが忌々しく感じます．
なぜ，あのような人里離れた場所にあるのか…

そこで，Windowsの無変換，変換キーがそれぞれMacにおける英数，かなキーの動作になるように設定をします．
まずは，タスクバーの右側にあるIMEのボタンの上で右クリックし，プロパティを開きます．
![IMEのプロパティ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106956/8009dd63-9c7a-a934-8252-ff05f06d669f.jpeg)

そして，詳細設定 => 全般タブを選択 => 編集操作の項目内の変更ボタンを押します．
すると，IMEのキー設定の画面が出てくるので，

- **無変換キーの入力/変換を「IME-オフ」に割り当て**
- **変換キーの入力/変換を「IME-オン」に割り当て**

を行います．
![2020-09-16 (16)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106956/1025fd8a-0b51-bcb9-b28e-5abf1776b3ef.jpeg)

これで，IMEの設定が完了です．
**無変換/変換キーで自由にIMEの切り替えができるようになりました！**

# おわりに
以上で，WindowsマシンのキーボードをMacライクなキーボードにすることができました．
みなさんもこれで快適なWindows生活をお送りください．

**ちなみに，私はMacで開発できることになったため，Windowsは卒業しました．**