はじめに

WindowsでもmacOS風のキーバインドを利用したいことがあると思います。そのための設定です。レジストリとAutoHotKeyを利用します。
※レジストリをおかしくいじると最悪Windowsが起動しなくなります。自己責任でお願いします。

レジストリでキーをリマップする

レジストリでキーをリマップするためには、Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard LayoutScancode Mapという名称で設定を追加します。空白の場所で右クリックし、NewBinary valueを選択、設定名をScancode Mapとしてください。
次に、設定を書き込みます。 今回設定するのは以下の項目です。

1Before   → After
2------------------
3Capslock →   F13
4LAlt     →   LCtrl
5LWin     →   LAlt
6LCtrl    →   LWin
7RAlt     →   RCtrl
8RCtrl    →   RAlt

これをレジストリで設定するためには以下のようにします。

100000000 00 00 00 00 00 00 00 00
200000008 07 00 00 00 64 00 3A 00
300000010 1D 00 38 00 5B E0 1D 00
400000018 38 00 5B E0 1D E0 38 E0
500000020 38 E0 1D E0 00 00 00 00
600000028

この設定がどのような構造になっているについてはたくさんのブログがあるのでそちらを見てください。
再起動した際、設定が反映されていれば成功です。

AutoHotKey を設定する

mac風キーバインドの設定

AutoHotKeyをインストールし、xxx.ahkファイルを作成します。
私のAutoHotKeyのバージョンは1.1.33.02です。

ahkファイルに設定を記述します。

 1;; Eamcs 風のキーバインド
 2F13 & B::Send,{Blind}{Left}
 3F13 & N::Send,{Blind}{Down}
 4F13 & P::Send,{Blind}{Up}
 5F13 & F::Send,{Blind}{Right}
 6F13 & H::Send,{Blind}{Backspace}
 7F13 & D::Send,{Blind}{Delete}
 8F13 & A::Send,{Blind}{Home}
 9F13 & E::Send,{Blind}{End}
10F13 & K::Send,+{End}{Shift}+{Delete}
11F13 & Enter::Send,{Alt Down}{Shift Down}{Enter}{Alt Up}{Shift Up}
12
13;;バーチャルディスクトップ
14F13 & Right::Send, {LCtrl up}{LWin down}{LCtrl down}{Right}{LWin up}{LCtrl up}
15F13 & Left::Send, {LCtrl up}{LWin down}{LCtrl down}{Left}{LWin up}{LCtrl up}
16F13 & Up::Send, {LWin down}{Tab}{LWin up}
17F13 & Down::Send, {LWin down}{Tab}{LWin up}
18
19;; アプリの終了
20LCtrl & Q::Send, {LAlt down}{F4}{LAlt up}
21
22;;chromeなどのタブの移動 →
23LAlt & Right::	
24  If GetKeyState("LCtrl", "P") {			
25    Send,^{Tab}
26  }
27Return
28
29;;chromeなどのタブの移動 ←
30LAlt & Left::	
31  If GetKeyState("LCtrl", "P") {		
32    Send,+^{Tab}
33  }
34Return
35
36;; アプリ(ウインドウ)の切り替え
37LCtrl & Tab::AltTab
38
39;; 無変換で英語入力
40vk1C::
41imeoff:
42  Gosub, IMEGetstate
43  If (vimestate=0) {
44    Send, {vkf3}
45  }
46  return
47
48;; 変換で日本語入力
49vk1D::
50imeon:
51  Gosub, IMEGetstate
52  If (vimestate=1) {
53    Send, {vkf3}
54  }
55  return
56
57;; 上の二つのために必要
58IMEGetstate:
59  WinGet, vcurrentwindow, ID, A
60  vimestate := DllCall("user32.dll\SendMessageA", "UInt", DllCall("imm32.dll\ImmGetDefaultIMEWnd", "Uint", vcurrentwindow), "UInt", 0x0283, "Int", 0x0005, "Int", 0)
61  return
62
63;; メディアコントロール(macのファンクションキー)
64;; Insertと数字の同時押しで再現
65;; 数字でなくファンクションにしてもよいのでは?
66;; brightness up
67;;Insert & 1
68;;Insert & 2
69;; task view
70Insert & 3::Send {LWin down}{Tab}{LWin up}      
71;; lanch pad
72;;Insert & 4
73;; keyboard brightness up
74;;Insert & 5,6
75;; play Back
76Insert & 7::Send {Media_Prev}
77;; pause & play
78Insert & 8::Send {Media_Play_Pause}
79;; play next
80Insert & 9::Send {Media_Next}
81;; volume mute
82Insert & 0::Send {Volume_Mute}
83;; volume Down
84Insert & -::Send {Volume_Down}
85;; volume up (if en chang e to =)
86Insert & ^::Send {Volume_Up}

その他便利な設定

どこかのサイトで見つけました。(忘れてしまいました)

 1;;クリップボード内容をgoogle search
 2LAlt & s::
 3	If GetKeyState("Ctrl", "P") {
 4		send, ^c
 5		Clipboard := RegExReplace(Clipboard, "^ +|\r\n| +$", "")
 6		Run, http://www.google.co.jp/search?q=%Clipboard%
 7	}
 8Return
 9
10;;クリップボード内容をgoogle translate
11LAlt & t::
12	If GetKeyState("Ctrl", "P") {
13		send, ^c
14		Clipboard := RegExReplace(Clipboard, "^ +|\r\n| +$", "")
15		Run, https://translate.google.com/#view=home&op=translate&sl=en&tl=ja&text=%Clipboard%
16	}
17Return