AutoHotkey によるキーマップ

Version2に書き換える予定だが、とりあえず:

過去の設定
; 共通キーバインド

$^m::Send,{Enter} ; mute
$^[::Send {Esc}

$^h::Send {BS} ; history
$^d::Send {Delete} ; bookmark it

#If !( WinActive("ahk_class ConsoleWindowClass") && WinActive("ahk_exe cmd.exe") )
$^n::Send,{Down} ; new window
$^p::Send {Up} ; print
#If

$^b::Send,{Left}  ; bookmark manager(firefox) / hatena bookmark it(chrome) -> alt+b に変更。firefoxでは alt+b がメニューに取られるので、ctrl+alt+b
$^e::Send,{End} ; google search(chrome) ^wと押し間違えるとマズイ

; 基本は再帰的なホットキー設定適用
; ブロックしないと再帰的な適用が起きる
$^f::Send,{Right} ; search -> ^s
$^a::Send,{Home} ; All select -> alt a, 押しにくい

vk1D & n::Send, {PgDn}
vk1D & p::Send, {PgUp}
vk1D & a::Send, ^{Home}
vk1D & e::Send, ^{End}

#If ( 
  !(WinActive("ahk_class Chrome_WidgetWin_1") && WinActive("ahk_exe Code.exe"))
  &&
  !(WinActive("ahk_class Emacs") && WinActive("ahk_exe emacs.exe")) )
$^k:: ; もとは検索窓から検索
  Send +{End}
  Send ^x
  Return
#If

#If (WinActive("ahk_class Chrome_WidgetWin_1") && WinActive("ahk_exe chrome.exe"))  ||  (WinActive("ahk_class MozillaWindowClass") && WinActive("ahk_exe firefox.exe"))

; exeも指定しないと誤爆する。Vscodeもやられる。
^s::Send,^f ; save page
!a::Send,^a ; ???
^@::Send,^p
vk1D::Send vkF2 ; うまくいかない、vkF2は[カタカナ/ひらがな]
!n::Send,!{Right} ; ブラウザ進む
!p::Send,!{Left}; ブラウザ戻る
^r::Send ^k ; 検索エンジンで検索
分析

次の場合分けをしている。

  1. 一般的な設定
    1. ^m エンター
    2. ^[ ESC
    3. ^h バックスペース
    4. ^d デリート
  2. Emacs風のカーソル移動
    1. ^n 下
    2. ^p 上
    3. ^a 行頭
    4. ^e 行末
    5. ^b 左
    6. ^f 右
    7. vk1D & n ページ下::Send, {PgDn}
    8. vk1D & p ページ上
    9. vk1D & a ファイル先頭
    10. vk1D & e ファイル末尾
  3. cmd.exe の場合
    1. ^n と ^p は具合が悪いのでそのまま通す。
  4. Emacsバインドのエディタ以外の設定(今はVScodeだけなので、VSCode以外
    1. ^k 行末までカット
  5. ブラウザ(firefox と chrome)
    1. ^s ページ内検索
    2. !a 全選択
    3. ^@ 印刷
    4. !n ブラウザ進む
    5. !p ブラウザ戻る
    6. ^r 検索エンジンで検索