既存のキーボードマクロを表示するにはM-x list-keyboard-macros RETとタイプします。これにより*Keyboard Macro List*という名前のバッファーにKmacroメニュー(Kmacro Menu)がポップアップします。このリストの行にはそれぞれ1つのマクロの位置、カウンター値、カウンターフォーマット、フォーマットされたカウンター値、マクロのキーが表示されます。以下はマクロリストの例です:
Position Counter Format Formatted Keys 0 8 %02d 08 N : SPC <F3> RET 1 0 %d 0 l o n g SPC p h r a s e
マクロはカレントマクロを位置番号0として一番上、その下により古いマクロがキーボードマクロリング(キーボードマクロリングを参照)で見つかった順番にリストされます。Kmacroメニューを使ってマクロの順番、カウンター、カウンターのフォーマット、キーを変更できます。Kmacroメニューは読み取り専用のバッファーであり、このセクションで説明する特別なコマンドを通じてのみ変更できます。これらのコマンドを実行すると、Kmacroメニューがマクロのプロパティとマクロリングに新たな値を反映して変更を表示します。このバッファーでは通常のカーソル移動コマンド、およびテーブルのナビゲート用の特別な移動コマンドが使用できます。KmacroメニューでC-h
mまたは? (describe-mode
)をタイプすれば、特別なコマンドのリストを閲覧できます。
マクロのプロパティの変更には、以下のコマンドを使用できます:
カレント行のマクロの位置を変更します(キーボードマクロリングを参照)。
transpose-lines
のように、カレント行のマクロを1行上に移動します。
カレント行のマクロのカウンター値を変更します(キーボードマクロカウンターを参照)。
カレント行のカウンターのカウンターフォーマットを変更します。
edit-kbd-macro
(キーボードマクロの編集を参照)を用いて、カレント行のマクロのキーを変更します。
上述のコマンドを用いて、カレント行のカレント列の値を変更します。
以下はリストのマクロの削除や複製を行うコマンドです:
カレント行のマクロに削除フラグをつけてから、ポイントを次の行に移動します(kmacro-menu-flag-for-deletion
)。行頭の文字‘D’は削除フラグを示します。実際の削除はxコマンド(以下参照)をタイプしたときのみ行われます。
リージョンがアクティブなら、このコマンドはリージョン内のすべてのマクロにフラグをつけます。
リストから削除用にフラグがつけられたマクロを削除します(kmacro-menu-do-flagged-delete
)。
カレント行のマクロにマークをつけてから、ポイントを次の行に移動します(kmacro-menu-mark
)。行頭の文字‘*’は削除フラグを示します。マークがつけられたマクロはCおよびDのコマンド(以下参照)で操作できます。
リージョンがアクティブなら、このコマンドはリージョン内のすべてのマクロにマークをつけます。
このコマンドはリストのカレント位置にあるマクロを複製することによりマクロをコピーします(kmacro-menu-do-copy
)。たとえば位置0のマクロでこのコマンドを実行すると、このマクロのコピーが位置1に挿入されて、それ以降のマクロは1つ下に移動します。
リージョンがアクティブなら、このコマンドはリージョン内にあるマクロを複製します。それ以外の場合には、マーク済みのマクロがあればそのマクロを複製します。リージョンもマーク済みのマクロもなければ、カレント行のマクロを複製します。前の2つの場合には、複製する前に確認を求めます。
このコマンドはリングから削除することによりマクロを削除します(kmacro-menu-do-delete
)。たとえば位置0のマクロでこのコマンドを実行すると、カレントマクロが削除されて、マクロリングの最初のマクロ(削除前の位置1のマクロ)をリングからポップして新たなカレントマクロとします。
リージョンがアクティブなら、このコマンドはリージョン内にあるマクロを削除します。それ以外の場合には、マーク済みのマクロがあればそのマクロを削除します。リージョンもマーク済みのマクロもなければ、カレント行のマクロを削除します。いずれの場合においても削除する前には確認を求めます。
これはdおよびxのコマンド(上記参照)の代替えとなるコマンドです。
カレント行のマクロのマークとフラグを外してから、ポイントを次の行に移動します(kmacro-menu-unmark
)。アクティブなリージョンがあれば、このコマンドはリージョン内のすべてのマクロのマークとフラグを外します。
uコマンド(上記参照)と同様ですが、アクティブなリージョンがなければ前の行にポイントを移動します(kmacro-menu-unmark-backward
)。
リストにあるすべてのマクロのマークとフラグを外します(kmacro-menu-unmark-all
)。