Post by Peter DavisPost by Tassilo HornWhat does "nothing" mean? I guess "the key sequence is not finished",
right?
Nothing means that if I type 'M M e', emacs immediately responds that
this is undefined, without waiting for any further keystrokes.
Wow, this is really strange. If `M M e' is described as undefined, then
actually `e' should be bound to `gnus-summary-put-mark-as-expirable'.
Post by Peter DavisPost by Tassilo HornPost by Peter Davis⇧M ⇧M E E runs the command gnus-summary-put-mark-as-expirable,
which is an interactive Lisp function in `gnus-sum.el'.
Is that the literal output? I've never seen this key notation in emacs.
Here, it would say `M M e e'. Is that something inherent to Aquamacs?
Post by Peter DavisPost by Tassilo HornAnyway. By default, `gnus-summary-put-mark-as-expirable' is not bound
to a key, at least not in the current Gnus version. Is it possible that
you've bound it, e.g., in ~/.gnus.el, on the machine where the macro
works?
It's not defined anywhere in my .emacs or .gnus.el file. In fact, the
sequence originally came from an example Peter Münster posted to this
list, so it evidently worked for him.
Ok, I see.
Post by Peter DavisPost by Tassilo HornWell, what you can do of course is define your keyboard macro in such
a way that it doesn't depend on key bindings, that is, the keyboard
macro would do
M-x gnus-summary-put-mark-as-expirable RET...
instead of
M M e e...
Yes, I'd have to figure out how to do the rest of the behavior (moving
to and showing the next message in the group). As I mentioned, I'm not
lisp-savvy, but I could figure this out in time.
Binding keys to vectors of keys is not the best way to persist keyboard
macros. Basically, I'd recommend you re-record your macro using
1. Start recording with <f3>.
2. Perform the actions you want to record, e.g., expire the current
message and move on to the next one. You can use key bindings for
that but also the menu or tool bar or M-x ...
3. Finish recording of the macro with <f4>.
4. Give the last recently recorded keyboard macro a name, e.g.,
`pd/gnus-expire-and-move-on' using `C-x C-k n'
5. Open your ~/.emacs, move point to some empty line and do ` M-x
insert-kbd-macro RET pd/gnus-expire-and-move-on RET'. This will
insert a command definition for the given keyboard macro. Then you
can bind that command rather than a plain key sequence in your
`pm/alter-*-map' functions which I guess are run in
`gnus-summary-mode-hook' and `gnus-article-mode-hook'.
Post by Peter DavisI'm still puzzled about why it suddenly stopped working, after being in use for months.
Yes, me too. Is it possible that you are using different Aquamacs
versions on the two computers? AFAIK, the current Aquamacs release is
based on emacs 24.x whereas the previos version was based on emacs 23.x.
It is possible that something in the handling of keyboard macros has
changed between versions (although I cannot find a corresponding NEWS
entry).
Concretely, from what you are telling it seems as if the current version
errors when a keyboard macro invokes an undefined key binding whereas
the older version just ignores it and continues with the rest of the
macro's keys.
Bye,
Tassilo