はじめに
みなさんは、普段PCのキーボードは何を使ってますか?JIS or USキーボード?またWindows or Mac?わたしは、USキーボードがカッコイイと思ってるのでUS派です。デスクトップは自作PC(Windows)で、ラップトップはM2 MacBookAirを使っています。わたしのように2つの環境を頻繁に切り替える人は多いと思います。そこで問題になってくるのがキーボード入力やショートカットの違いです。
わたしは基本的にMac環境のEmacsキーバインドとかショートカットが好きなのでこの記事では、Windows環境のキーボード設定をMac環境に近づける方法を紹介します。
Emacsキーバインドとは
Emacsキーバインドとは何かというと、Emacsというエディタで使われるショートカットのことです。Mac OSではショートカットとして組み込まれています。
詳しくは以下の記事を参考にしてください。
Mac OSのキーボード設定
Mac OSでは素晴らしいショートカットがいくつかあります。特に好きなショートカットに以下のものがあります。(主にEmacsキーバインド)
コマンド | 機能 |
---|---|
Control + F | カーソルを一つ前に移動 (1文字右) |
Control + B | カーソルを一つ後に移動 (1文字左) |
Control + P | カーソルを一つ上に移動 (1行上) |
Control + N | カーソルを一つ下に移動 (1行下) |
Control + A | カーソルを行の先頭に移動 |
Control + E | カーソルを行の末尾に移動 |
Control + H | 前の文字を削除(delete) |
Control + D | 後の文字を削除(back space) |
Control + Shift + J | 日本語入力へ切り替え |
Control + SHift + ; | 英字入力へ切り替え |
カーソル移動とか削除とかよく使うコマンドがたくさんあって便利そうですよね。ですが、ここでMacのUSキーボードを見てみましょう。
こんなにも重要なキーなのにこんなにも押しにくいところにある!辛い...
解決策
Macの場合はとってもシンプルControl
キーの場所をもっと押しやすい位置に変更すれば便利です。
オススメは"Caps lock
をControl
に置き換える"です。
やり方は以下の通りです。
Caps Lock
キーとかいうSQL文を書く時ぐらいしか使わないキーを潰してControl
キーにすることでQOL爆あがり間違いなしです!
↓は実際にキー変更した後のタイピング動画です。わかりにくですが、一度もdelete
キーを触らず、まだ、スムーズにカーソル移動していることがわかります。
Windows OSのキーボード設定
MacではデフォルトでEmacsキーバインドが使えましたが、Windowsでは使えません。しかし指はもうEmacsキーバインドを求めていますし、Caps Lock
を書き換えた影響で日本語に切り替えたいのに、大文字アルファベットを入力してしまうようになってしまいました。
そのため、WindowsでもMacと同じようにタイピングしたいのでキー配列をソフト側で書き換えます。
書き換えソフトにはAutoHotkeyを使用します
解決策
WindowsのショートカットをMac風にAutoHotkeyで書き換えます。
変更点は以下の通りです。
- Emacsキーバインド対応(一部)
-
Caps Lock
をF13
という仮想のキーに置き換え -
Caps Lock + Shift + j
でかな -> 英数字
-
Caps Lock + Shift + ;
で英数字 -> かなの変換
変更するためのスクリプトは以下の通りです。
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
; かなを押したときは、全角(IME OFF)
vk1C::
imeoff:
Gosub, IMEGetstate
If (vimestate=0) {
Send, {vkf3}
}
return
; 無変換を押したときは、半角(IME ON)
vk1D::
imeon:
Gosub, IMEGetstate
If (vimestate=1) {
Send, {vkf3}
}
return
IMEGetstate:
WinGet, vcurrentwindow, ID, A
vimestate := DllCall("user32.dll\SendMessageA", "UInt", DllCall("imm32.dll\ImmGetDefaultIMEWnd", "Uint", vcurrentwindow), "UInt", 0x0283, "Int", 0x0005, "Int", 0)
return
; Emacsキーバインドのカーソル移動設定
F13 & f::Right ; 次の文字
F13 & p::Up ; 前の行
F13 & n::Down ; 次の行
F13 & b::Left ; 前の文字
F13 & u::Left ; 前の文字
F13 & a::HOME ; 行の先頭に移動
F13 & e::END ; 行の末尾に移動
F13 & d::Del ; 文字の削除
F13 & h::BS ; 前の文字の削除
F13 & m::Enter ; 改行
; Caps Lockを利用したIMEの切り替え
F13 & j::
if GetKeyState("Shift") {
Send, {vk1C} ; Shift+CapsLock+Jでかな入力
return
}
send {F6} ; CapsLock+Jでひらがなに変換
return
F13 & `;::
if GetKeyState("Shift") {
Send, {vk1D} ; Shift+CapsLock+;で英数入力
return
}
send {F10} ; CapsLock+;で英数に変換
return
F13 & k::F7 ; CapsLock+Kでカタカナに変換
; Caps Lockを利用したマウス操作
F13 & c::click ; CapsLock+Cでクリック
F13 & v::click,Right ; CapsLockで右クリック
; Ctrl修飾子を利用したマウス移動
Ctrl & Up::MouseMove 0,-10,0,R ; Ctrl+↑で上にマウス移動
Ctrl & Down::MouseMove 0,10,0,R ; Ctrl+↓で下にマウス移動
Ctrl & Left::MouseMove -10,0,0,R ; Ctrl+←で左にマウス移動
Ctrl & Right::MouseMove 10,0,0,R ; Ctrl+→で右にマウス移動
; Shift修飾子を利用した大幅なマウス移動
Shift & Up::MouseMove 0,-50,0,R ; Ctrl+↑で多めに上にマウス移動
Shift & Down::MouseMove 0,50,0,R ; Ctrl+↓で多めに下にマウス移動
Shift & Left::MouseMove -50,0,0,R ; Ctrl+←で多めに左にマウス移動
Shift & Right::MouseMove 50,0,0,R ; Ctrl+→で多めに右にマウス移動
; Windowsの検索ボックスを開く
F13 & Space::#s ; Control+SpaceでWindowsの検索ボックスを開く
このプログラムをWindowsのStartup時に起動するようにすればMac風のショートカットを実装できます!
おわりに
これでMac、Windowsをスムーズに切り替えることができますね!
しかし、他人のパソコンを触るときは癖で、何度もCapsLockキーを押しちゃうことが多発するので注意してください!
参考