増井俊之氏の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
- ファイルリネーム