他のOSは分かりませんがWindows版pgAdminのクエリツールでは、Ctrl+Hを打っても反応がありません。エクスプローラやTerapadではCtrl+HでBackspaceになるので、同じように打ちたい時があり、他にも自分流にショートカットを定義できると便利。pgAdmin本体にはそのようなオプション設定がない一方、Windows上ならAutoHotkeyを使って補えます。以下、簡単なサンプルを作って試したメモ。実行環境はWindows 7 32bit + pgAdmin Portable 1.20 + AutoHotkey 1.1.21です。
準備
公式サイトによれば AutoHotkeyはa scripting language for desktop automationで、デスクトップに常駐してキー入力などのイベントから様々な処理が可能。CtrlやAltを使う入力形式が最初から定義されているので、それをトリガにして好きな動作をさせれば自分流のショートカットキーです。動作対象も、デスクトップ上の全てor特定のアプリやウィンドウに条件分岐でき、今回のpgAdminクエリツール上での使い方は後者に当たります。
ダウンロードは http://ahkscript.org/download/ から。インストーラとポータブル版ZIPの両方があり、今回は後者のUnicode 32bit版AutoHotkey112003.zipを使いました。下のとおり実行ファイル一つだけで、適当な作業用フォルダに解凍。
↓ 実行ファイルと同じ場所に、スクリプトと起動用バッチファイルを作成。AutoHotkeyのスクリプトは拡張子ahkがデフォルトです(インストーラの場合、これに関連付け)。
↓ スクリプトの例で、セミコロン;以下がコメントです。一行目は、ウィンドウタイトル名を前方一致で探す設定。二行目でpgAdminクエリツールのウィンドウタイトルの先頭Query - postgresを指定し、このウィンドウがアクティブな時に三行目のショートカットキーが有効になります。三行目の^hがCtrl+H、BSがBackspaceの意味。
SetTitleMatchMode, 1 ; prefix search
#IfWinActive, Query - postgres
^h::Send,{BS}
↓ バッチファイルは、同じフォルダにAutohotkey.exeおよび自分と同じファイル名+ .ahkのスクリプトがある前提で、それを実行するだけです。
@echo off
start "" AutoHotkey %~n0.ahk
テスト
バッチを実行するとタスクトレイにAutoHotkeyのアイコン ↓ が出て、pgAdminクエリツールでCtrl+Hが有効になりました。pgAdminとAutoHotkeyの起動はどちらが先でもいいです。終了時は、タスクトレイアイコン上で右クリックすると出るメニューの中にExitがあります。
スクリプト実行中に間違って再度バッチを実行すると、二重起動はせず、インスタンスを置き換えるかどうかのメッセージ ↓ が出ます。
他のショートカットキーが必要な場合は AutoHotkeyJp >リファレンス>キーリスト を参考にして下さい。このリファレンスをはじめ日本語の情報も多数あり、ショートカットだけでなく様々なことができます。ただしCapsLockとカナキーだけは、Windowsの仕様でうまく制御できないようです。
前ブログで、漢字直接入力と「無変換キーを使ったホームポジションでのカーソル」の組み合わせを試していると書きました(Windows 7 + VJE-Delta 4.0 +漢字直接入力の最近、2015/03/14)。その後AutoHotkeyの方がいろいろ使いやすいと感じ、従来の入力方式から全面的にAutoHotkeyに移行しました。PostgreSQLと直接関係ありませんが、作業環境向上の記録として明日から少しまとめて書きます。