増井俊之氏のDynamic MacroのAutoHotKey実装です。
オリジナルはEmacs上で動作するマクロですが、AutoHotKeyで実装することにより、Windows上の全てのエディタ、アプリケーションで手軽にDynamic Macroを利用できます。
参考:http://www.pitecan.com/DynamicMacro/
紹介記事:https://forestail.com/programing/dynamic-macro-autohotkey/
- AutoHotKey本体がインストールされていること
※ AutoHotKeyのKeyHistoryを利用しているため、現状スクリプトをコンパイルした状態で使うことはできません。
DynamicMacro.ahkをダブルクリックして実行します。- 下記設定の
InvokeHotKeyで割り当てたホットキー(デフォルトはCtrl+T)を入力すると、その時点までのキー操作から繰り返しを見つけてそれをマクロ実行します。 - 繰り返しが見つからない場合は、キー操作を予測した上で繰り返しになるものを探します。
- 下記設定の
ResetHotKeyで割り当てたホットキー(デフォルトはESC)を入力すると、これまでのキー入力履歴をクリアし、保持している繰り返しキー入力も削除します。
DynamicMacro.iniの以下の部分でホットキーを設定してください。それぞれのコマンドの意味は下記の通りです。
InvokeHotKey=^t
PredictHotKey=^y
ResetHotKey=~esc
PrevRepeatHotKey=^F9
PrevPredictHotKey=^F10
| # | コマンド | デフォルトHK | 機能概要 |
|---|---|---|---|
| 1 | InvokeHotKey | ^t | 繰り返しまたは予測を自動判定して実行 |
| 2 | PredictHotKey | ^y | 予測モードを指定して実行 |
| 3 | ResetHotKey | ~esc | キー履歴をクリア |
| 4 | PrevRepeatHotKey | ^F9 | 前回の繰り返しキー操作を再実行 |
| 5 | PrevPredictHotKey | ^F10 | 前回#1を実行した時点での予測モード再実行 |
※#3は能動的にキー履歴をクリアするもので、このDynamicMacroが特定のエディタではなくOS全体で機能する点を考慮して実装したものです。
※#4は繰り返し実行後、別のキー操作をしていたとしても、実行すると前回繰り返し入力したキー操作を再度実行します。
※#5は#1を実行したときに予測モードを期待したのに繰り返し実行されてしまった場合に、その時点までCtrl+ZなどでUndoして、予測モードでやり直すコマンドです。
利用状況を分析するために、ログ出力機能を付けています。
ログを出力するには、DynamicMacro.iniの以下の部分を設定してください。
EnableLog=0
LogPath=DMlog.txt
EnableLogを1にすると、LogPathのファイルにログを出力します。ログファイルは絶対パスか相対パスで指定してください。相対パスの場合はDynamicMacro.ahkが存在するディレクトリを起点にします。
ログはCSV形式で、それぞれのカラムの意味は以下です。
| カラム | 意味 | 例 |
|---|---|---|
| 第1カラム | 時刻 | 2021/07/17 01:01:01 |
| 第2カラム | 実行タイプ | Reset or Repeat or Predict |
| 第3カラム | 挿入したキー(Predictの場合はXYXのY)のタイプ数 | 3 |
| 第4カラム | Predictの場合のXYXのXのキータイプ数 | 2 |
- Windows標準のメモ帳
- Excel
- ファイルリネーム


