;; ;; CapsLock⇔無変換は次のレジストリをバイナリ値で設定する。 ;; ;; \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\Scancode Map ;; ;; 0000 00 00 00 00 00 00 00 00 ;; 0008 03 00 00 00 3A 00 7B 00 ;; 0010 7B 00 3A 00 ;; ;; ;; グローバル変数 ;; ;; 選択状態を格納する。(1:選択中) is_space := 0 ;; ;; 移動系(標準) ;; ;; 無変換 + F => 1文字右へ移動 sc07B & f:: { If is_space Send "{Shift Down}{Right}{Shift Up}" Else Send "{Right}" Return } ;; 無変換 + B => 1文字左へ移動 sc07B & b:: { If is_space Send "{Shift Down}{Left}{Shift Up}" Else Send "{Left}" Return } ;; 無変換 + N => 1行下へ移動 sc07B & n:: { If is_space Send "{Shift Down}{Down}{Shift Up}" Else Send "{Down}" Return } ;; 無変換 + P => 1行上へ移動 sc07B & p:: { If is_space Send "{Shift Down}{Up}{Shift Up}" Else Send "{Up}" Return } ;; 変換 + F => 1単語右へ移動 sc079 & f:: { If is_space Send "{Shift Down}^{Right}{Shift Up}" Else Send "^{Right}" Return } ;; 変換 + B => 1単語左へ移動 sc079 & b:: { If is_space Send "{Shift Down}^{Left}{Shift Up}" Else Send "^{Left}" Return } ;; 無変換 + A => 行頭へ移動 sc07B & a:: { If is_space Send "{Shift Down}{Home}{Shift Up}" Else Send "{Home}" Return } ;; 無変換 + E => 行末へ移動 sc07B & e:: { If is_space Send "{Shift Down}{End}{Shift Up}" Else Send "{End}" Return } ;; 無変換 + V => 次頁へ移動 sc07B & v:: { If is_space Send "{Shift Down}{PgDn}{Shift Up}" Else Send "{PgDn}" Return } ;; 変換 + V => 前頁へ移動 sc079 & v:: { If is_space Send "{Shift Down}{PgUp}{Shift Up}" Else Send "{PgUp}" Return } ;; 変換 + , => ファイルの先頭へ移動 sc079 & ,:: { If is_space Send "{Shift Down}^{Home}{Shift Up}" Else Send "^{Home}" Return } ;; 変換 + . => ファイルの末尾へ移動 sc079 & .:: { If is_space Send "{Shift Down}^{End}{Shift Up}" Else Send "^{End}" Return } ;; 変換 + L => スクリーン中央へ移動…としたいが15行上下に移動する sc07B & L:: { global is_space := 0 Loop 15 Send "{Up}" Loop 15 Send "{Down}" Loop 15 Send "{Down}" Loop 15 Send "{Up}" Return } ;; ;; 編集系(標準) ;; ;; 無変換 + Space => 選択開始 sc07B & Space:: global is_space := 1 ;; Alt => 選択解除 ~Alt:: global is_space := 0 ;; 無変換 + G => 選択解除 sc07B & g:: global is_space := 0 ;; 無変換 + M => 改行の入力 sc07B & m:: { global is_space := 0 Send "{Enter}" Return } ;; 無変換 + I => タブの入力 sc07B & i:: { global is_space := 0 Send "{Tab}" Return } ;; 無変換 + d => Deleteの入力 sc07B & d:: { global is_space := 0 Send "{Del}" Return } ;; 無変換 + h => BackSpaceの入力 sc07B & h:: { global is_space := 0 Send "{BackSpace}" Return } ;; 無変換 + W => 切り取り sc07B & w:: { global is_space := 0 Send "^x" Return } ;; 変換 + W => コピー sc079 & w:: { global is_space := 0 Send "^c" Return } ;; 無変換 + K => 行末までをコピー sc07B & k:: { global is_space := 0 Send "{Shift Down}{End}{Shift Up}^x" Return } ;; 無変換 + Y => 貼り付け sc07B & y:: { global is_space := 0 Send "^v" Return } ;; 無変換 + / => 元に戻す sc07B & /:: { global is_space := 0 Send "^z" Return } ;; 無変換 + O => 半角/全角 sc07B & o:: { global is_space := 0 Send "!{vkF3sc029}" Return } ;; ;; その他(Emacsとは無関係) ;; ;; 変換 + N => 次のタブへ移動 sc079 & n:: { global is_space := 0 Send "^{PgDn}" Return } ;; 変換 + P => 前のタブへ移動 sc079 & p:: { global is_space := 0 Send "^{PgUp}" Return } ;; 無変換 + Enter => Alt + Enter sc07B & Enter:: { global is_space := 0 Send "!{Enter}" Return } ;; 変換 + 1 => F1 sc079 & 1:: { global is_space := 0 Send "{F1}" Return } ;; 変換 + 2 => F2 sc079 & 2:: { global is_space := 0 Send "{F2}" Return } ;; 変換 + 3 => F3 sc079 & 3:: { global is_space := 0 Send "{F3}" Return } ;; 変換 + 4 => F4 sc079 & 4:: { global is_space := 0 Send "{F4}" Return } ;; 変換 + 5 => F5 sc079 & 5:: { global is_space := 0 Send "{F5}" Return } ;; 変換 + 6 => F6 sc079 & 6:: { global is_space := 0 Send "{F6}" Return } ;; 変換 + 7 => F7 sc079 & 7:: { global is_space := 0 Send "{F7}" Return } ;; 変換 + 8 => F8 sc079 & 8:: { global is_space := 0 Send "{F8}" Return } ;; 変換 + 9 => F9 sc079 & 9:: { global is_space := 0 Send "{F9}" Return } ;; 変換 + 10 => F10 sc079 & 0:: { global is_space := 0 Send "{F10}" Return } ;; 変換 + 11 => F11 sc079 & -:: { global is_space := 0 Send "{F11}" Return } ;; 変換 + 12 => F12 sc079 & ^:: { global is_space := 0 Send "{F12}" Return } ;; ;; Windows標準のCtrlショートカットキーと同じ動作 ;; ;; 無変換 + Z => Ctrl + Z sc07B & z:: { global is_space := 0 Send "^z" Return } ;; 無変換 + X => Ctrl + X sc07B & x:: { global is_space := 0 Send "^x" Return } ;; 無変換 + C => Ctrl + C sc07B & c:: { global is_space := 0 Send "^c" Return } ;; 無変換 + R => Ctrl + R sc07B & r:: { global is_space := 0 Send "^r" Return } ;; 無変換 + ; => Ctrl + ; sc07B & vkBB:: { global is_space := 0 Send "^;" Return } ;; 無変換 + : => Ctrl + : sc07B & vkBA:: { global is_space := 0 Send "^:" Return } ;; 無変換 + WheelDown => Ctrl + WheelDown sc07B & WheelDown:: { global is_space := 0 Send "^{WheelDown}" Return } ;; 無変換 + WheelUp => Ctrl + WheelUp sc07B & WheelUp:: { global is_space := 0 Send "^{WheelUp}" Return }