「キー割り当て拡張マクロ」関連

top秀丸エディタマクロ

update : 2023/02/23 (Thu)

1 目次

2 「キー割り当て拡張マクロ」 関連

注意

2.1 設定ファイル作成支援マクロ(key-assign-option.mac)

ませま氏作成の「キー割り当て拡張マクロ」の設定ファイル「key-assign.ini」の作成を支援します。

このマクロの動作には、あべのりゆき氏作成「macrodll.dll」が必要です。(「キー割り当て拡張マクロ」があれば動作します。)

以下のDLLがあれば使用します。(必須ではない。)

  • カモノハシ氏作成「AssignReg.dll」
    (キー割り当て拡張マクロ Version 0.04β1以降はマクロに同梱されています。)
  • 杉浦まさき氏作成「田楽DLL」
    Ver.0.5β5以降は未使用。)

使用している「キー割り当て拡張マクロ」に対応したマクロを使って下さい。対応していないバージョンでは正常に動作しない可能性があります。1

  • 秀丸エディタVer.5対応の開発版 key-assign-option.mac Ver.0.5β12 [2006/01/03]
    • 秀丸エディタ Ver.4.10以降及び、Ver.5.00以降対応版。両方のバージョンで動くハズです。できるだけ最新版の秀丸を使用してください。

    • 「AssignReg.dll」のVer.1.71以降が必要です。(秀丸 Ver.5.00以降対応)

    • "S)決定","B)戻る","X)終了","C)キャンセル"のメニューを[Shift]、[Alt]、[Ctrl]の連打で表示するように修正。
      この機能は「キー割り当て拡張マクロ」本体に合わせ、変更する場合があります。

    • Ver.5.00β14で拡張されたキー割り当てに対応するのは、キー割り当て拡張マクロ Ver.0.04Beta03が必要です。

    • ディレクトリ付で圧縮してあります。ディレクトリ構造を保持したまま解凍して下さい。

      マクロ本体 :key-assign-option.mac
      説明 文書 :key-assign/key-assign-option.txt
      設定用マクロ:key-assign/key-assign-optionsetup.mac
      変換用データ:key-assign/lib/convert.dat
    • Ver.0.5β6 以降、設定を外部ファイルで行います。初回実行時のみ設定用マクロを起動します。
      設定マクロ起動画面

    • Ver.0.5β より「AssignReg.dll」があれば使用するようにしています。「key-assign\lib」フォルダに入れて下さい。

  • 正式版 key-assign-option.mac Ver.0.4.1 (キー割り当て拡張マクロ 0.03 、秀丸エディタ Ver.4.07 対応版) [2004/07/03]

動作イメージ

  • メニュー表示(Ver.0.5β10以降)
    キー入力メニュー

  • キー入力待ち
    キー入力画面

  • キー入力確定後のメニュー表示
    メニュー画面

  • キー入力確定後のメニュー表示(Ver.0.5)
    メニュー画面Ver.0.5

  • システムコマンド選択
    システムコマンド選択画面

マクロ起動時のカーソル位置により動作が異なります。(“|”はカーソル位置を示す。)

C-S=!ab|out-hidemaru C-S=[コマンド一覧] “!”以降を削除しシステムコマンド一覧を表示
C-S=|!about-hidemaru C-S=[メニュー] “=”より後を削除しメニューを表示
C-S|=!about-hidemaru =!about-hidemaru “C-S”を削除し入力待ち
C-S,|=!about-hidemaru C-S=!about-hidemaru “C-S”から入力待ち
C-S,C-A|=!about-hidemaru C-S=!about-hidemaru “C-A”を削除し入力待ち
C-S,|C-A=!about-hidemaru C-S=!about-hidemaru “C-A”を削除し入力待ち
C-S|,C-A=!about-hidemaru =!about-hidemaru “C-S,C-A”を削除し入力待ち
|C-S=!about-hidemaru =!about-hidemaru “C-S”を削除し入力待ち
|C-S,C-A=!about-hidemaru =!about-hidemaru “C-S,C-A”を削除し入力待ち

2.1.1 履 歴(key-assign-option.mac)

[2006/01/02] Ver 0.5β12
  • macrodll.dllのVersion 0.77に対応検索時に"\f"をサポートしなくなった為、DLLのバージョンをみて"()"を使うようにした。
[2005/11/02] Ver 0.5β11
  • キー割り当て拡張マクロ Version 0.04β3に対応
    ("ESC"と"num"の割り当てには非対応)
  • β10で「戻る」等をメニュー化したが、"Space"キーの「決定」以外を復活。
    (タイトルバー表示はβ10で変更したままです。)
[2005/05/29] Ver 0.5β10
  • [Shift]、[Alt]、[Ctrl]の連打でメニューを表示するように修正。 "ESC"と"Space"の割り当てには対応。
[2005/04/09] Ver 0.5β9
  • AssignReg.dll Ver 1.70 に対応新規追加された関数「SetHidemaruVersion」を使用するようにした。
  • 秀丸エディタ Ver.5β14 で追加されたキー割り当てに対応操作の都合上、"ESC"と"Space"の割り当てには未対応。
  • 秀丸エディタのVer.5とVer.4に対応したつもり。
[2005/01/28] Ver 0.5β8
  • セクション名部分の場合はマクロを実行するか確認するようにした。
[2004/11/03] Ver 0.5β7
  • 正規表現のエスケープする文字を追加。
[2004/10/23] Ver 0.5β6
  • 設定を外部ファイルで行うように修正。「key-assign\key-assign-optionsetup.ini」で設定。
  • 設定編集マクロ key-assign-optionsetup.mac を追加。
[2004/10/09] Ver 0.5β5
  • キー割り当て拡張マクロ Version 0.04β1に対応
    数字キー、Tab キーに対応。
    Tabキーは2ストローク以降のみ。
    数字キーは最初だけCtrlキーとの組み合わせのみ有効。2ストローク以降は制限なし。
  • 田楽(でんがく)DLLがなくてもドライブ変更出来るようにmacrodll.dllの「FILE_GETDRIVES」を使うように変更。
  • key-assign-set.mac の変更(変換データファイルフォーマット変更)に対応
[2004/06/20] Ver 0.5β4
  • AssignReg.dll Ver 1.41 で「getMacroSettings」の廃止が予告されたので対応
[2004/06/12] Ver 0.5β3
  • AssignReg.dll Ver 1.30 以降の機能を使用し、ファイル経由で最新の情報を取得するように修正。
    秀丸エディタ Ver.4.10でのみ実行可能
[2004/05/15] Ver 0.5β2
  • 機能名に正規表現のメタ文字が含まれている場合に検索に失敗してたのを修正
  • n ストローク時は「割り当てられて・・・」をメニューに表示しないように修正。
  • AssignReg.dll へ引き渡すキーの変換がおかしかったバグの修正。
    key-assign-set.mac からコードを流用したが、古い版だった・・・。
  • システムコマンドの選択から「Shift + BackSpace」でメニューに戻るときに"!"が追加されてしまうバグの修正。
  • 変換データフォーマット変更。
[2004/05/03] Ver 0.5β1
  • AssignReg.dllが"key-assign\lib"にある場合、

    • 割り当てられていた機能と同等のシステムコマンド
    • 割り当てられていたマクロ
    • [Global]に割り当てられている機能

    をメニューから入力出来るようにした。

[2004/06/26] Ver 0.4.1(正式版)
  • システムコマンドの選択から「Shift + BackSpace」でメニューに戻るときに"!"が追加されてしまうバグの修正。
[2004/04/03] Ver 0.4(正式版)
  • キー入力確定時の確認あり・なしを設定できるようにした。

    マクロを直接編集して設定。
    //  キー入力確定時の確認あり・なし設定
    //  0:確認なし
    //  1:確認あり(デフォルト)
    #CHECK_FLG = 1;

以前の履歴

目次へ

2.2 キー設定マクロ(key-assign-set.mac)

ませま氏作成の「キー割り当て拡張マクロ」の設定ファイル「key-assign.ini」の内容を秀丸エディタ本体に設定します。

このマクロの動作には、カモノハシ氏作成「AssignReg.dll」と杉浦まさき氏作成「田楽DLL」が必要です。
「AssignReg.dll」はキー割り当て拡張マクロ Version 0.04β1以降に同梱されています。

  • 開発版 key-assign-set.mac Ver.0.2β13 [2005/11/12]
    • 秀丸エディタ Ver.4.10以降及び、Ver.5.00β14以降対応版。両方のバージョンで動くハズです。

    • 「AssignReg.dll」のVer.1.71以降が必要です。

    • ディレクトリ付で圧縮してあります。
      ディレクトリ構造を保持したまま解凍し、key-assign.mac と同じ場所においてください。

      マクロ本体 :key-assign-set.mac
      説明 文書 :key-assign/key-assign-set.txt
      設定用マクロ:key-assign/key-assign-optionsetup.mac
      変換用データ:key-assign/lib/convert.dat
    • Ver.0.2β6 以降、設定を外部ファイルで行います。初回実行時のみ設定用マクロを起動します。
      設定マクロ起動画面

  • 正式版 key-assign-set.mac Ver.0.1 [2004/04/07]

このマクロを実行する前にキー設定の保存(マクロの設定を含む)を行って設定をバックアップして下さい。設定がおかしくなった場合は、バックアップしたファイルを読み直せば元に戻せます

動作イメージ

  • 設定画面
    キー入力画面

  • 削除画面(Ver 0.2β5で変更)
    削除画面

2.2.1 注 意

秀丸エディタは起動時にレジストリからキー割り当てやマクロの設定を読み込み、終了時(常駐秀丸エディタを含む)にレジストリに書き込みます。2

マクロやキー割り当ての設定は秀丸エディタと対話的に取得している訳ではなく、レジストリに書き込まれた情報を読み込んでいます。その為、秀丸エディタ起動後にキー割り当てやマクロ登録の変更を行い、終了していない状態でこのマクロを実行すると、実際の設定とレジストリ情報が一致していないので変更内容が反映されません。(このマクロはレジストリの情報を元に設定を行っています。)

キー割り当ての変更を行った場合、

  • 全ての秀丸エディタ(常駐秀丸エディタを含む)を終了し再起動。
  • キー割り当ての保存を行う。3
    「キー割り当て」-->「保存」(マクロの内容も保管する)
    2004/05/31追記
    その後の調査により、キー割り当てのダイアログを開いた時点で書き込まれてい事が判明。つまり、キー割り当て変更後、再度、キー割り当てを実行しキャンセルすれば問題ない。(と思う・・・。)

のどちらかを行ってから、このマクロを実行してください。

2.2.2 履 歴(key-assign-set.mac)

[2005/11/13] Ver 0.2β13
  • 正規表現のメタ文字を含むキーに割り当てた場合、重複チェックに失敗していたのを修正。(検索時にエラーが表示されていた。)
[2005/11/03] Ver 0.2β12
  • キー割り当て拡張マクロ Version 0.04β3に対応
[2005/07/17] Ver 0.2β11
  • Ver.5で、Ctrl+0~9に割り当てた場合、マクロ1~10が実行できないと、警告を出すようにした。
[2005/04/17] Ver 0.2β10
  • 秀丸エディタVer.5βに対応キー割り当てのチェックを追加・修正
  • AssignReg.dll Ver 1.70 に対応新規追加された関数「SetHidemaruVersion」を使用するようにした。
[2005/03/21] Ver 0.2β9
  • 検索文字、オプションを保護するように修正。
[2004/11/03] Ver 0.2β8
  • 正規表現のエスケープする文字を追加。
[2004/10/30] Ver 0.2β7
  • "convert_set_list.dat"を保存するときに確認ダイアログが出ないように修正。
[2004/10/23] Ver 0.2β6
  • 設定を外部ファイルで行うように修正。「key-assign\key-assign-optionsetup.ini」で設定。
  • key-assign-optionsetup.mac を追加。
[2004/10/15] Ver 0.2β5
  • システムコマンドを秀丸エディタ側のコマンドに置き換えた場合、メッセージを出すようにした。
  • 秀丸エディタ側コマンドに置き換え後に設定を削除した場合、設定を削除する/しないを選択できるようにした。
    デフォルトは削除しない。
[2004/10/09] Ver 0.2β4
  • キー割り当て拡張マクロ Version 0.04β1に対応
    数字キー、Tab キーに対応。
    Ctrl+1~9,0に割り当てた場合、マクロ1~10へ登録します。キー割り当ては行いません。(出来ません。)

  • システムコマンドを可能な場合は秀丸エディタ側のコマンドに置き換えるようにした。置き換えの条件

    • [Global]セクションのみに設定がある。
    • システムコマンドに対応する秀丸エディタ側のコマンドが存在している。
    • Ctrl+0~9以外。
[2004/08/10] Ver 0.2β3
  • β2での対応がうまく動作していなかったバグの修正。
    「現在の設定」が文字化けする。
    既に登録してあるのにリストに表示される。
  • 空白を含むパスでファイル操作に失敗していたのを修正。
[2004/07/03] Ver 0.2β2
  • AssignReg.dll Ver 1.41 で「getMacroSettings」の廃止が予告されたので対応
[2004/06/13] Ver 0.2β1
  • AssignReg.dll Ver 1.30 以降の機能を使用し、ファイル経由で最新の情報を取得するように修正。
    秀丸エディタ Ver.4.10β31以降でのみ実行可能
  • 設定に $BACKUP_PATH を追加
    バックアップファイルを作成する場所
    デフォルト設定は "key-assign" フォルダ
    $BACKUP_PATH = currentmacrodirectory + "\key-assign\";
  • key-assign.mac と同じ場所において動作するように修正。
[2004/04/06] Ver 0.1
  • マクロ番号の割り当てが常に"1"になってしまうバグの修正。
  • エラーにタグジャンプ可能な形式でファイルに出力する機能を追加。
  • エラーとキー割り当て解除は項目がない場合、表示しないようにした。
  • バックアップファイル名を固定。
  • (β版と同じく年月日時刻を元にしたファイル名に変更可能)
  • filetype が ".ini" 以外では動作しないようにした。
  • 各種設定を変更可能にした。
    • バックアップ作成チェックのON/OFF
    • バックアップファイル名の設定
    • key-assign.keyの読み込み確認

以前の履歴

2.2.2.1 おまけ

「キー割り当て」の「保存」を行うと、変更した内容がレジストリに書き込まれるようです。
ということで、umiumi氏作成「uwsc」を使った「キー割り当て」の「保存」を自動的に行うスクリプトです。"__tmp.key"という名前で保存します。起動用秀丸エディタマクロがついてます。"$uwsc_exe"を適当に書き換えて下さい。

hidemaru_keysave.lzh

2.2.2.2 おまけ-その2 レジストリ保存タイミングの調査メモ
  1. 「キー割り当て」の内容をレジストリに書き込ませる方法がないか適当に操作。

  2. 「キー割り当て」の「保存」を行うと書き込まれていることが判明。(この時点ではそう思ってた・・・。)

  3. マクロからだと保存できないので秀丸エディタのサポートフォーラムで保存コマンドを要望。

  4. コマンドが追加されたので喜んで使ってみたけどレジストリには保存されていない。「キー割り当て」の「保存」の操作で書き込まれることは間違いはないが保存動作ではない。

  5. レジストリの内容を表示するマクロを作成し各動作ごとに実行。

    • キー割り当て変更 -> そのまま保存 - >書き込まれていない
    • キー割り当て変更 -> 「OK」で閉じる -> 書き込まれていない
    • キー割り当て変更- > 「OK」で閉じる -> 再度「キー割り当て」を開く -> 書き込まれていることを確認。
  6. どうやら「キー割り当て」を実行後、再度「キー割り当て」ダイアログを開くと書き込まれているらしい。

2004/06/01現在、AssignReg.dll(Ver.1.30) がkeyファイルを読み込めるようになったので、最新情報を保存してファイルから読み込めば最新情報の取得が可能になった。

目次へ

2.3 システムコマンド整理マクロ(key-assign-arrange.mac)

ませま氏作成の「キー割り当て拡張マクロ」のシステムコマンドの整理を行います。「key-assign\bin」フォルダにあるマクロで、システムコマンド一覧「key-assign\lib\command.dat」にないマクロを削除します。田楽DLLがある場合はゴミ箱へいれます。バージョンアップ等でシステムコマンドから削除されたマクロやファイル名が変更されたマクロを削除するのが目的です。

ファイルの削除を行うので注意して下さい。(田楽DLLを使用しゴミ箱に入れることを推奨します。)

このマクロの動作には、あべのりゆき氏作成「macrodll.dll」が必要です。(「キー割り当て拡張マクロ」があれば動作します。)杉浦まさき氏作成「田楽DLL」があれば使用します。(必須ではない。)

2.3.1 履 歴

[2004/03/07] Ver 0.2
  • 田楽DLLがあればゴミ箱に入れるようにした。
[2004/02/28] Ver 0.1
  • 初版(未公開)

目次へ


top秀丸エディタマクロ


  1. 主にmacrodll.dll のバージョンに依存しています。↩︎

  2. 公式的な情報ではなく、カモノハシ氏の実験的知識。詳細は「AssignReg.dll」に同梱されている文書を参照。↩︎

  3. 公式的な情報ではなく、私の実験結果です。2004/05/31追記 間違ってたみたい・・・。↩︎