2016-06-14 4 views
1

このpostによれば、私は自分の.emacsファイルでeval-and-replaceを定義しています。emacs kbdマクロ - レコードキーが正しくありません

しかし、マクロを使って以下のセックスのリストを評価して置き換えようとしたとき、それは私のマックで台無しになるでしょう。私のLinuxマシンでは、または単一のsexpでeval-and-replaceするだけで動作します。

(+ 1 2) 
(+ 1 2) 
(+ 1 2) 
(+ 1 2) 
(+ 1 2) 

だから私は定義されたマクロは次の通りである、各S式の先頭から:C-e C-c e <down> C-a

しかし、私がマクロステッパーを実行したとき、実際のマクロはC-e C-e C-c C-c ee <down> C-aです。どうやってコマンドを2回記録するのだろうと思っています。

そして、私はまた、ウィキpost-command-hookによると、マクロステッパーError in post-command-hook (kmacro-step-edit-post-command): (void variable kmacro-step-edit-active

からエラーを得たが、前のコマンドに関連しています。しかし、私はこれを解決する方法についての手掛かりはありません。

+0

各マシンでどのバージョンのEmacsを実行していますか? – phils

+0

マクロを記録した後に 'C-h l'を使って、Emacsがレコーディング時に見たキーストロークを確認します。これは、単にMac上のキーボードのハードウェアの問題である可能性があります。 'C-x C-k e RET'は最新のキーボードマクロ用のマクロエディタも起動します。 – phils

+0

@philsこんにちは、 'C-h l 'と入力すると、記録されたキーストロークは' C-h C-h l l'です。しかし、これがハードウェアの問題であれば、私はマクロを使用しないと、なぜすべてがうまくいくのですか?例えば ​​'l'と打てば' l'が1つしか出ません。 – Ling

答えて

1

私の.emacsファイルのいくつかの部分をコメントアウトした後で、flash-paren.elファイルにバグがあり、kbdマクロを定義しているのにマクロを実行していないときにparenが点滅することがわかりました。

flash-paren-check(not (defining-kbd-macro))を追加することで問題は解決します。

これはハードウェアの問題ではありません。

+0

いいです。著者にバグレポートを提出してください。 – phils

+0

@philsありがとうございます!私はプルリクエストを送った。 – Ling

関連する問題