Created
May 13, 2014 13:24
-
-
Save kondei/87b5f783a6f84a653790 to your computer and use it in GitHub Desktop.
無変換を使い倒し、あと色々便利化するAutoHotKeyのスクリプト
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;「;」を行頭につけるとコメント | |
;文法は公式ドキュメント(http://www.autohotkey.com/docs/)参照のこと | |
;windowsの設定でログイン時に自動起動するようにすると楽 | |
;---------------------------------------------------------- | |
;検索関数 | |
;ウェブのアドレスならそれを開く | |
;ディレクトリアドレスならエクスプローラで開く | |
;文字列ならGoogle検索 | |
;ちなみにFirefoxはshiftを押しながら起動するとセーフモードになってしまうらしい | |
search(){ | |
bk = %ClipboardAll% ;今のクリップボードをバックアップ | |
Clipboard = | |
Send,^{c} ;選択文字列をクリップボードにコピー | |
SplitPath, Clipboard, name, dir, ext, noext, drive ;様々な指定形式に分割 | |
if(doWeb(Clipboard, drive, dir)){ ;Webの場所を開く | |
}else if(doLocal(drive, dir)){ ;ローカルな場所を開く | |
} | |
Clipboard=%bk% ;元のクリップボードを復元 | |
} | |
doWeb(str, drive, dir){ | |
isWeb := "" | |
if((isWeb := isURL(drive, dir)) != ""){ ;URL | |
}else if((isWeb := isURLlike(Clipboard, drive, dir)) != ""){ ;URLぽいもん | |
}else{ | |
isWeb := getWebSearch(Clipboard) ;web検索 | |
} | |
if(isWeb != ""){ | |
Run, %isWeb% | |
return true | |
} | |
return false | |
} | |
isURL(drive, dir){ | |
if(InStr(drive, "http://") = 1 || InStr(drive, "https://") = 1){ | |
return %dir% | |
} | |
return "" | |
} | |
isURLlike(str, drive, dir){ | |
if(InStr(drive, "ttp://") = 1 || InStr(drive, "ttps://") = 1){ | |
return "h" . dir | |
}else if(drive = "" && InStr(str, "www.") = 1){ | |
return, "http://" . str | |
} | |
return "" | |
} | |
getWebSearch(str){ | |
if(str != ""){ | |
return "http://www.google.com/search?q=" . str ;Google検索 | |
} | |
return "" | |
} | |
doLocal(drive, dir){ | |
if(drive != ""){ | |
Run, %dir% | |
return true | |
} | |
return false | |
} | |
;---------------------------------------------------------- | |
;キー変換 | |
;トラックポイント付き日本語キーボード(55Y0924)で、 | |
;マウスを使うなら右手で、 | |
;そのとき左手がホームポジションにあるという前提で考えてある | |
;普通のキーボードならマウス移動やクリックの命令を入れてみても面白いかもしれない | |
;ひらがなカタカナやCapsLockはAutoHotKeyで変更すると不具合が出るので | |
;レジストリを書き換えるキーリマップソフト(keyswapとか)で変える | |
;私はCapsLock→BackSpace, 変換→右Ctrl, カタカナひらがな→右Winに変えてある | |
;{Blind}でctrlやshiftなどの修飾キーが素通りする | |
;でも修飾して既に存在するショートカットを含んでしまうと競合して効かないので注意 | |
;例えば「Win 無変換 l」でウィンドウをを右半分にしようとしても「Win l(ロック)」と競合して効かない、とか | |
;また、2つ超過のキーバインドは単純には作れないので注意 | |
;作るならif文でstateがD(Down、押されている)、U(Up、押されていない)、T(トグル)とかで判定してやる | |
;直接指定するとキー入れ替えで他の命令にも影響するが、Sendすると影響しないみたい | |
;Send,{キー}の後にスペースがあるとキー挙動がおかしくなる | |
;#InstallKeybdHook | |
#UseHook | |
;頻繁にスクリプトを変える場合に便利 | |
vk1Dsc07B & 0::Reload ;このスクリプトをリロードして適用 | |
vk1Dsc07B & 8::Edit ;このスクリプトを編集 | |
;[無変換] | |
;編集系(右手) | |
vk1Dsc07B & j::Send,{Blind}{Left} ;← | |
vk1Dsc07B & l::Send,{Blind}{Right} ;→ | |
vk1Dsc07B & i::Send,{Blind}{Up} ;↑ | |
vk1Dsc07B & k::Send,{Blind}{Down} ;↓ | |
vk1Dsc07B & o::Send,{Blind}{Tab} ;Tab | |
vk1Dsc07B & u::Send,{Blind}+{Tab} ;Shift Tab | |
;編集系(左手) | |
vk1Dsc07B & s:: | |
GetKeyState, state, RWin ;Ctrlではホイールがズームになることが多い | |
if state = U | |
Send,{Blind}{Home} ;Home | |
else if state = D | |
Send,{Blind}{WheelLeft} ;マウスホイール← | |
return | |
vk1Dsc07B & f:: | |
GetKeyState, state, RWin | |
if state = U | |
Send,{Blind}{End} ;End | |
else if state = D | |
Send,{Blind}{WheelRight} ;マウスホイール→ | |
return | |
vk1Dsc07B & e:: | |
GetKeyState, state, RWin | |
if state = U | |
Send,{Blind}{PgUp} ;PageUp | |
else if state = D | |
Send,{Blind}{WheelUp} ;マウスホイール↑ | |
return | |
vk1Dsc07B & d:: | |
GetKeyState, state, RWin | |
if state = U | |
Send,{Blind}{PgDn} ;でPageDown | |
else if state = D | |
Send,{Blind}{WheelDown} ;マウスホイール↓ | |
return | |
;編集系(その他) | |
vk1Dsc07B & g:: | |
GetKeyState, state, Ctrl | |
if state = U | |
Send,{Blind}{Up}{Home} ;上の行頭へ | |
else if state = D | |
Send,{Up}{End}{Enter} ;上に1行増やしその頭へ | |
return | |
vk1Dsc07B & v:: | |
GetKeyState, state, Ctrl | |
if state = U | |
Send,{Blind}{Down}{Home} ;下の行頭へ | |
else if state = D | |
Send,{End}{Enter} ;下に1行増やしその頭へ | |
return | |
vk1Dsc07B & h::Send,{Blind}{Up}{End} ;上の行末へ | |
vk1Dsc07B & n::Send,{Blind}{Down}{End} ;下の行末へ | |
vk1Dsc07B & c::Send,{Blind}{Home}+{End} ;1行選択 | |
;文字入力系 | |
;IME系の詳細はIMEで設定した方がいい | |
+vk1Dsc07B::Send,{vkF3sc029} ;IME On/Off | |
;vk1Dsc07B & vkBBsc027::Send,{vkF3sc029} ;IME On/Off | |
vk1Dsc07B & 2:: ;CapsLockでNumLockも一緒に切り替わるときはNumLockすれば互い違いになる | |
GetKeyState, state, CapsLock, T | |
if state = U | |
SetCapsLockState On ;CapsLock On | |
else if state = D | |
SetCapsLockState Off ;CapsLock Off | |
return | |
vk1Dsc07B & 3:: | |
GetKeyState, state, NumLock, T | |
if state = U | |
SetNumLockState On ;NumLock On | |
else if state = D | |
SetNumLockState Off ;NumLock Off | |
return | |
;文字系 | |
vk1Dsc07B & vkBFsc035::Send,{vkE2sc073} ; / ⇒ \ | |
vk1Dsc07B & vkBBsc027::Send,{&} ; ; ⇒ & | |
vk1Dsc07B & vkBAsc028;::Send,{|} ; : ⇒ | | |
;削除系 | |
vk1Dsc07B & BS::Send,{Blind}{Del} ;Delete | |
;vk1Dsc07B & ::Send,{LShift Down}{End}{Del}{LShift Up} ;行末まで削除 | |
;便利なキー | |
vk1Dsc07B & a::Send,{AppsKey} ;AppsKey(右クリックのメニュー) | |
vk1Dsc07B & z::Send,{Esc} ;Escape | |
vk1Dsc07B & b::Send,{Blind}{F3} ;F3で次を検索 | |
vk1Dsc07B & Space:: | |
GetKeyState, state, LShift | |
if state = U | |
search() ;検索 | |
else if state = D | |
Send,{vk1Csc079} ;変換済みを再変換したいとき | |
return | |
;タスク系 | |
vk1Dsc07B & r::AltTab ;Alt Tabのタスク切り替え(→) | |
vk1Dsc07B & w::ShiftAltTab ;Shift Alt Tabのタスク切り替え(←) | |
vk1Dsc07B & ,::Send,{F5} ;F5(更新) | |
vk1Dsc07B & q::Send,!{F4} ;Alt F4(終了) | |
;vk1Dsc07B & 1::Send,{F1} ;F1(ヘルプ) | |
;マウスとの組み合わせ | |
vk1Dsc07B & LButton::Send,{Blind}{BS} ;BackSpace | |
vk1Dsc07B & RButton::Send,{Blind}{Del} ;Delete | |
vk1Dsc07B & MButton::search() ;選択テキストを検索 | |
;[マウス] | |
;競合が多いのでマウスだけのはあまり書かない方がいい | |
~MButton & WheelUp::Send,{WheelLeft} | |
~MButton & WheelDown::Send,{WheelRight} | |
~LButton & RButton::AltTab ; | |
;~RButton & WheelDown::Send,{WheelRight} | |
^MButton::Send,{vk1Csc079} ;変換済みを再変換したいとき | |
LAlt & LButton::ShiftAltTab | |
LAlt & RButton::AltTab | |
LAlt & MButton::Send,!{F4} ;Alt F4(終了) | |
;task | |
;spaceでマウス | |
;------------------------------------------------------- | |
;アプリケーション固有設定 | |
;Window spyというAutoHotkey付属ソフトでウィンドウ情報を調べてそれを書く | |
; Firefox | |
;FireGesturesとかで色々すれば要らんかな…… | |
;#IfWinActive,ahk_class MozillaWindowClass | |
;^1::Send,^{Left} | |
;^2::Send,^{Right} | |
;^3::Send,^{Up} | |
;^4::Send,^{Down} | |
;#IfWinActive | |
;タスクバーでスクロールすると音量調整 | |
#IfWinActive,ahk_class Shell_TrayWnd | |
WheelUp::Send,{Volume_Up} | |
WheelDown::Send,{Volume_Down} | |
MButton::Send,{Volume_Mute} | |
vk1Dsc07B & i::Send,{Volume_Up} ;↑ | |
vk1Dsc07B & k::Send,{Volume_Down} ;↓ | |
vk1Dsc07B & b::Send,{Volume_Mute} ;MButton | |
#IfWinActive | |
#UseHook off |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment