読者です 読者をやめる 読者になる 読者になる

blechmusikの日記

キー・カスタマイズ・ソフトウェア "DvorakJ" の覚え書きをはじめとして様々なことを書いています。

Shift + Ctrl + カーソルキーをスペース + 無変換 + IJKL で実現する AutoHotkey スクリプト

DvorakJのみでは対応できない機能だと思ったので、試しに作成してみた。

;;; スクリプトを終了するにはタスクトレイのアイコンを右クリックし、Exitを選択
#singleinstance force

;Shift + Ctrl + カーソルキーを
;スペース + 無変換 + IJKL で実現

;キーリスト - AutoHotkey Wiki
;http://ahkwiki.net/KeyList

;vk1Csc079 	変換キー
;vk1Dsc07B 	無変換キー

$space::
   return

$sc07b::
   return


$i::
$j::
$k::
$l::
    gTextModifiers := ""
    gTextThisHotkey := RemoveSigil(A_ThisHotkey)

    if ( GetKeyState("sc07B", "P"))
    {
        gTextModifiers .= "^"
    }
    if ( GetKeyState("space", "P") )
    {
        gTextModifiers .= "+"
    }


    if ( gTextModifiers == "" )
    {
        send, %gTextThisHotkey%
        return
    }

    gIJKLFunctions := {i: "{Up}", j: "{Left}", k: "{Down}", l: "{Right}"}

    send, % gTextModifiers . gIJKLFunctions[gTextThisHotkey]
    return

RemoveSigil(aString)
{
    return RegExReplace(aString, "\$", "")
}