AutoHotKey~キーバインドのこだわり~

■ダイヤモンドカーソルから始まったキーバインドのこだわり

はるか30年以上前、MS-DOS上で動くテキストエディタやTurboPascalのエディタなど、「WordStar準拠」と言われるキーバインドで文字編集を修業した。
WordStarが生まれたころはカーソルキーなど特殊キーがなかったので、Ctrlキーとの併用でカーソルコントロールなどを行っていた。
その象徴的なものが「ダイヤモンドカーソル」と言われているキーバインドだ。Ctrlキーを押しながらE,S,D,Cを押すことによって↑,←,→,↓へのカーソル移動を行っていた。
特にTurboPascalを愛していた私はそれにすっかり指がなじんでいた。

ところが時代は進み、MS-DOSからWindowsの時代に変わり、各アプリケーションの標準的なキーバインドは変わってきた。ダイヤモンドカーソルという概念すら消え去った。Ctrl+Cを押すのは「コピー」と相場が決まっている。
また、大きな働きをしていたCtrlキーはPC-9801ではAのすぐ左側にあって無理なく小指で押せたけど、IBM互換のハードウェアでは一番左下に追いやられ、きわめて押しにくくなった。

しかし、世の中捨てたものではなく、CtrlキーをPC-9801と同じ位置に持ってきたり、ダイヤモンドカーソルなどのキーバインドを実現できたりするしくみやツールがたくさん存在し、ありがたく利用させていただいてきた。

そんな私に最近大きな光を当ててくれたのは「AutoHotKey」というソフトだ。このユーティリティソフトはかなり以前から存在し、私も時々目にはしていたのだけ、やっとその便利さに気づいたということだ。こんな便利なものを提供してくれてありがとう!と大きな声で言いたい。

■AutoHotKeyとは

キーバインド、要するにあるキーを押したときの働きを自由に設定することができるソフトだ。
テキストファイルに押されたキーと動作させる機能を定義していく。それを読み込ませるとキーバインドがその通りに動作するようになる。
AutoHotKeyのソフトは常駐して動作させる。

ソフトの使用は無料で、以下からダウンロードして使うことができる。

AutoHotkey
Free keyboard macro program. Supports hotkeys for keyboard, mouse, and joystick. Can expand abbreviations as you type th...

詳しいインストール方法や使い方は多くの方が記事に書いてくださっているのでとてもよく理解できる。

■私のキーバインド

私は以下のように変更した。

・ダイアモンドカーソルをCtrlの代わりに「無変換」キーとの同時打鍵に割り当てた。
無変換+E:↑ 無変換+S:← 無変換+D:→ 無変換+C:↓
・その他、Ctrlキーとの同時打鍵で愛用していたものを「無変換」キーとの同時打鍵に割り当てた。
無変換+H:BS 無変換+M:Enter 無変換+I:Tab 無変換+J:Home 無変換+L:End 無変換+ など
・キーボードの上部に配置してあるアプリケーションキーを自分用に特定のアプリケーションに割り当てた。
LINEとSkypeを頻繁に開くのでこの2つを割り当てた
・Fnキーとの同時打鍵に割り振られていたメディアコントロールキー群をファンクションキー(F1~F12)の単独機能として割り当てた。
再生/停止、ボリューム大/小、ミュート など
・ログテキストを整形するための複数のキーボードをマクロとして特定の機能キーに割り当てた。

まだまだやりたいことはたくさんあって試行錯誤している。夢は膨らむばかりだ。

参考までに私の定義ファイルを載せておきたい。


;vk1Dは無変換キーのコード。

vk1D & s:: Send,{Blind}{Left}
vk1D & x:: Send,{Blind}{Down}
vk1D & e:: Send,{Blind}{Up}
vk1D & d:: Send,{Blind}{Right}

vk1D & i:: Send,{Blind}{Tab}
vk1D & j:: Send,{Blind}{Home}
vk1D & l:: Send,{Blind}{End}

;BS/Enter/無変換/Delete
vk1D & h:: Send,{Blind}{BackSpace}
vk1D & m:: Send,{Blind}{Enter}
vk1D & vk1C:: Send,{Blind}{vk1D}
vk1D & g:: Send,{Blind}{Delete}
vk1D & t:: Send,{Blind}{Tab}

;PgUp/PgDn/Home/End
vk1D & o:: Send,{Blind}{PgUp}
vk1D & .:: Send,{Blind}{PgDn}
vk1D & u:: Send,{Blind}{Home}
vk1D & n:: Send,{Blind}{End}

vk1D:: Send,{Blind}{vk1D}

;アプリケーションキー
vkB6:: Run, “C:\Users\yamad\AppData\Local\LINE\bin\LineLauncher.exe”
vkB7:: Run, “C:\Program Files (x86)\Microsoft\Skype for Desktop\Skype.exe”
^vkB6:: Run explorer.exe “C:\Users\yamad\Downloads”
^vkB7:: Run, Calc.exe
;メディアコントロールキー
F6:: Send,{Blind}{Volume_Mute}
F7:: Send,{Blind}{Volume_Down}
F8:: Send,{Blind}{Volume_Up}
F9:: Send,{Blind}{Media_Prev}
F10:: Send,{Blind}{Media_Stop}
F11:: Send,{Blind}{Media_Play_Pause}
F12:: Send,{Blind}{Media_Next}
;スリープ
F1::
; Sleep/Suspend:
DllCall(“PowrProf\SetSuspendState”, “int”, 0, “int”, 0, “int”, 0)
; Hibernate:
;DllCall(“PowrProf\SetSuspendState”, “int”, 1, “int”, 0, “int”, 0)
Return

;Fn+メディアコントロールキーをファンクションキーに
;vkAD:: Send,{Blind}{F6}
;vkAE:: Send,{Blind}{F7}
;vkAF:: Send,{Blind}{F8}
;vkB1:: Send,{Blind}{F9}
;vkB2:: Send,{Blind}{F10}
;vkB3:: Send,{Blind}{F11}
;vkB0:: Send,{Blind}{F12}

;みんなのピアノのログ整理用(ヘッダ整形)
Pause::
Send,{vk1D}
Send,{Home}
Send,{Down}
Send,{Enter}
Send,{Up}
Send,—
Send,{Enter}
Send,{Up}
Send,{Up}
Send,{End}
Send,^{Left}
Send,^{Left}
Send,^{Left}
Send,^{Left}
Send,^{Left}
Send,^{Left}
Send,{Left}
Send,+{End}
Send,^{c}
Send,{Right}
Send,{Home}
Send,+{End}
Send,^{b}
Send,{Right}
Send,{Right}
Send,{Down}
Return


コメント