AutoHotkeyを使いWindowsでもカーソルキーをマッピングする

はじめに

前回Macでカーソルキーを捨てましたがWindowsでも同じことを行いたいと思います。

準備

インストールするソフトが2つあります。CtrlキーとCapsLockキーをレジストリで入れ替えるためにChange Keyを、カーソルキーをCtrlをプレフィックスとする下表のキーマッピングを登録するためにAutoHotkeyをインストールして下さい。

<Ctrl + :>
<Ctrl + [>
<Ctrl + ]>
<Ctrl + \>

今回は主にAutoHotkeyの設定方法をまとめます。Change Keyの使い方はとても簡単なので割愛させて頂きます。

カーソルキーをマッピング

まず適当なフォルダで右クリックをして「新規作成」→「AutoHotkey Script」を押下します。

適当なファイル名で.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.
#InstallKeybdHook
#UseHook
LCtrl & sc028::
  Send {vk25sc14B}
Return

LCtrl & sc01B::
  Send {vk26sc148}
Return

LCtrl & sc02B::
  Send {vk27sc14D}
Return

LCtrl & sc073::
  Send {vk28sc150}
Return

1~4行目は最初から記述されているものです。5行目はキーコードを確認するためにキー入力を履歴に流す設定です。この設定を有効にするとメモリ消費が常時増加するので終わったら削除しましょう。

残りの行でマッピングするキーを指定しています。ahkスクリプトを保存した後ダブルクリックで実行すると設定が反映されます。エラーが発生しなければカーソルキーを卒業出来ます。

インジケータのAutoHotkeyのアイコンをダブルクリックして、「View」→「History」か、<Ctrl + k>で下図のようなキー入力の履歴が見れるのでキーコードを調べたい場合はこれを確認するのが一番確実です。

クリップボードマネージャのマッピング

<Win + v>でクリップボードマネージャを起動できるのですがニーモック的に<Ctrl + Shift + v>の方が覚えやすいので変更してしまいます。先程のファイルにコードを追加して下さい。

LCtrl & v::
  if GetKeyState("Shift") {
      Send #v
  } else {
      Send ^v
  }
Return

単語・末尾移動

単語単位、末尾への移動が出来るようにするキーマッピングです。

<Ctrl + b><Ctrl + ←>
<Ctrl + w><Ctrl + →>
<Alt + w><Ctrl + w>
<Ctrl + e><Ctrl + End>
; 単語移動
LCtrl & b::
  Send ^{vk25sc14B}
Return

LCtrl & w::
  Send ^{vk27sc14D}
Return

; タブ閉じる
LAlt & w::
  Send ^w
Return

; 末尾
LCtrl & e::
  Send ^{vk23sc14F}
Return

InitShell

あとは再起動時に自動でスクリプトで実行してくれるようにshell:startupにショートカットを配置しておくのがおすすめです。

終わりに

単語移動系は後日わけわからなくなり外しました。AutoHotkeyに大いに実用性を感じているもののこれという設定が見つかっていないというのが正直なところ……

単語移動系の修正版

こっちの方がおすすめかもしれません。

; 単語移動
LAlt & f::
  Send ^{vk27sc14D}
Return

LAlt & b::
  Send ^{vk25sc14B}
Return

; 行頭・末尾移動
LAlt & a::
  Send ^{vk24sc147}
Return

LAlt & e::
  Send {vk23sc14F}
Return

; 段落末尾
LCtrl & e::
  Send ^{vk23sc14F}
Return

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA