LoginSignup
1
3

ぼくのかんがえたさいきょうのキーボード設定

Last updated at Posted at 2024-02-14

はじめに

みなさんは、普段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キーボードを見てみましょう。
IMG_7630 2.jpg
こんなにも重要なキーなのにこんなにも押しにくいところにある!辛い...

解決策

Macの場合はとってもシンプルControlキーの場所をもっと押しやすい位置に変更すれば便利です。
オススメは"Caps lockControlに置き換える"です。
やり方は以下の通りです。

  1. システム設定>キーボード>キーボードナビゲーション>キーボードショートカット
    スクリーンショット 2024-02-12 17.08.26.png
  2. キーボードショートカット>修飾キー>Caps LockをControlに変更
    スクリーンショット 2024-02-12 17.12.12.png

Caps LockキーとかいうSQL文を書く時ぐらいしか使わないキーを潰してControlキーにすることでQOL爆あがり間違いなしです!
↓は実際にキー変更した後のタイピング動画です。わかりにくですが、一度もdeleteキーを触らず、まだ、スムーズにカーソル移動していることがわかります。

Windows OSのキーボード設定

MacではデフォルトでEmacsキーバインドが使えましたが、Windowsでは使えません。しかし指はもうEmacsキーバインドを求めていますし、Caps Lockを書き換えた影響で日本語に切り替えたいのに、大文字アルファベットを入力してしまうようになってしまいました。
そのため、WindowsでもMacと同じようにタイピングしたいのでキー配列をソフト側で書き換えます。
書き換えソフトにはAutoHotkeyを使用します

解決策

WindowsのショートカットをMac風にAutoHotkeyで書き換えます。
変更点は以下の通りです。

  • Emacsキーバインド対応(一部)
  • Caps LockF13という仮想のキーに置き換え
  • Caps Lock + Shift + jかな -> 英数字
  • Caps Lock + Shift + ;英数字 -> かなの変換

変更するためのスクリプトは以下の通りです。

us配列.ahk
#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キーを押しちゃうことが多発するので注意してください!

参考

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3