この記事では、WindowsでMac風のcontorlキーバインドを再現する方法を紹介します。
前回は、無変換、変換キーでWindowsのIMEを操作する方法を紹介しました。
-
Windowsの変換・無変換キーでIMEの有効無効をMac風に操作する
MacBook Airを購入してしばらく経ちました。MacBook Airが初めてのMacだった私ですが、スペースキーの ...
続きを見る
今回は、Macのcontrolキーのショートカット(control+nでカーソルを下に移動など)を再現する方法を紹介します。前回の修正と組み合わせると、キーボードの入力環境はある程度Macぽくなります。
本記事で再現するキーボードショートカット一覧は下記です。
CapsLock + n : 下
CapsLock + p : 上
CapsLock + f : 右
CapsLock + b : 左
CapsLock + a : Home
CapsLock + e : End
CapsLock + v : PageDown
CapsLock + h : BackSpace
CapsLock + d : Delete
CapsLock + o : Enter
CapsLock + k : カーソルから行末まで削除
CapsLockキーにCtrlキーを割り当て、Macと同じ感覚でcontrolキーのショートカットを利用できるようにします。gvimやemacsなど、上記のキーショートカットが機能しては困る環境がある場合は、アプリケーション単位で上記のキーバインドを無効にできるようにします。右下、左下にあるCtrlキーは、CapsLockと入れ替えても良かったのですが、長年染み付いたコピペの操作ができなくなるのが不便だったのと、他の人がキーボードを触ったりすることもあるので残しました。
目次
使用するアプリケーション
- KeySwap for XP
- AutoHotKey_L
KeySwap for XP
KeySwap for XPは、キーの割り当てを変更することができるフリーソフトです。主にCapsLockキーにCtrlキーを割り当てる目的で使用します。レジストリを書き換えるため、幅広いアプリケーションでキー割り当てが有効になります。
下記からダウンロードします。
http://www.vector.co.jp/soft/winnt/util/se228667.html
AutoHotKey_L
AutoHotKey_Lは、スクリプトを書くことで入力環境を自由にカスタマイズすることができるフリーソフトです。主にCtrlキーにショートカットを割り当てる目的で使用します。OS上で動作するため、一部のアプリケーションにおいてはキー割り当てが機能しません。常駐型のアプリケーションですが、7年前に購入したWindowsXPマシンで使用しても不自由は感じません。
下記からダウンロードできます。
上記2つのソフトをダウンロードしてインストールしてください。インストール時の選択はデフォルトで構いません。
KeySwapを利用してキーの割り当てを変更
KeySwapを起動して、下記のようにキー割り当てを変更します。
クリックで拡大表示します。
- CapsLock:左Ctrl
- 左Ctrl:右Ctrl
- かな:右Alt
- 右Alt:CapsLock
設定が完了したら「終了」ボタンをクリックして設定を反映し、Windowsを再起動してください。元の設定に戻したい場合は「設定を全て削除」して再起動すればOKです。以下は設定の解説です。
CapsLockキーに左Ctrlキーを割り当て
Macのcontrolキーと同じ位置にCtrlキーが来ることになります。Vimやemacsの環境が快適になります。
左Ctrlキーに右Ctrlキーを割り当て
CapsLockに割り当てられている左Ctrlキーには、後ほどAutoHotKeyを使用してMacのcontrolキーショートカットを割り当てます。分かりづらいですが、このように設定することで左下にあるCtrlキーは今まで通りCtrlキーとして動作させることができます。
かなキーに右Altキーを割り当て
かなキーに右Altキーを割り当てて親指でAltを押せるようにします。かなキーは捨てます。
右AltキーにCapsLockキーを割り当て
CapsLockの機能を持つキーがなくなってしまうのは不便ですので、右Altキーに割り当てます。
AutoHotKeyでキーの割り当てを変更
任意の場所にmac.ahkというファイルを作成し、以下のスクリプトを貼りつけて保存します。
;================================================================
;auto hot key script for windows
;mac風キーバインド
;================================================================
#InstallKeybdHook
#UseHook
;================================================================
;関数
;================================================================
;----------------------------------------------------------------
;キーバインドを無効にするウィンドウかどうか判断する
; ahk_classはauto hot key付属のAU3_Spy.exeを使用して調べる。
; 引数 なし
; 戻り値 1:キーバインドを無効にするウィンドウ
; 0:キーバインドを有効にするウィンドウ
;----------------------------------------------------------------
is_disable_window()
{
;gvim
IfWinActive,ahk_class Vim
{
return 1
}
;tera term
IfWinActive,ahk_class VTWin32
{
return 1
}
;vmware player
IfWinActive,ahk_class VMPlayerFrame
{
return 1
}
return 0
}
;----------------------------------------------------------------
;キーを送信する
; キーバインドを無効にするウィンドウでは、送信されたキーをそのまま使用する
; キーバインドを有効にするウィンドウでは、送信されたキーを置き換える
;
; 引数 original_key:キーバインドを無効にするウィンドウの場合、送信するキー
; replace_key:キーバインドを有効にするウィンドウの場合、送信するキー
; 戻り値 なし
;----------------------------------------------------------------
send_key(original_key,replace_key)
{
if (is_disable_window())
{
Send,%original_key%
return
}
Send,%replace_key%
return
}
;================================================================
;ctrlキーバインド
;================================================================
;----------------------------------------------------------------
;移動系(shiftキーとの同時押し対応)
;ctrl + n : 下
;ctrl + p : 上
;ctrl + f : 右
;ctrl + b : 左
;ctrl + a : Home
;ctrl + e : End
;----------------------------------------------------------------
<^n::send_key("^n","{Down}")
<^+n::send_key("^+n","+{Down}")
<^p::send_key("^p","{Up}")
<^+p::send_key("^+p","+{Up}")
<^f::send_key("^f","{Right}")
<^+f::send_key("^+f","+{Right}")
<^b::send_key("^b","{Left}")
<^+b::send_key("^+b","+{Left}")
<^a::send_key("^a","{Home}")
<^+a::send_key("^+a","+{Home}")
<^e::send_key("^e","{End}")
<^+e::send_key("^+e","+{End}")
;----------------------------------------------------------------
;編集系
;ctrl + h : BackSpace
;ctrl + d : Delete
;ctrl + m : Enter
;ctrl + k : カーソルから行末まで削除
;----------------------------------------------------------------
<^h::send_key("^h","{BS}")
<^d::send_key("^d","{Del}")
<^m::send_key("^m","{Return}")
<^k::send_key("^k","+{End}{Del}")
保存したらmac.ahkを右クリック、compile scriptを選択してスクリプトをコンパイルします。
mac.exeが作成されたらダブルクリックして起動します。mac.exeアイコンがタスクトレイに常駐すればOKです。mac.exeがタスクトレイに常駐したら、CapsLock + n キーなどを押して動作確認を行ないます。
mac.exeをスタートアッププログラムに登録しておくと便利です。終了したいときはタスクトレイのmac.exeアイコンを右クリックして終了します。