I defined york-bar the same as you and invoked M-x york-bar while in normal state. Then I did the . command and entered the elisp debugger because of error:
Debugger entered--Lisp error: (void-variable p) eval(p nil) eval-last-sexp-1(nil) eval-last-sexp(nil) call-interactively(eval-last-sexp nil nil) execute-kbd-macro([115 101 120]) evil-execute-repeat-info(([115 101 120])) evil-execute-repeat-info-with-count(nil ([115 101 120])) evil-repeat(nil nil) call-interactively(evil-repeat nil nil) If I try to exit Emacs (such as clicking the Frame's close), the minibuffer simply reports: "After 0 kbd macro iterations: Symbol's function definition is void: t". Only when I exit the debugger am I able to quit Emacs. I discovered that if I have an edit in the repeat ring, I witness the behavior York describes instead of the the elisp errors. I pasted the york-bar from my web browser using X11, so it didn't go into the repeat ring. On 7/13/12, York Zhao <[email protected]> wrote: >> sorry for not answering immediately, but I've been on a business trip >> last weak and had simply no time. The same will be true for large >> parts of the next few months so please excuse if responses take some >> time. I'll always try to answer as soon as possible. > > Really appreciate that you have taken your valuable time to answer my > question, > and your answer have been very useful so far. > >> Note that currently repeating only works for commands bound to >> some key-bindings, calling them via M-x COMMAND RET may fail. > > Yes, you are right, I never binded these functions to any key, I used "M-x". > And > if I bind my command "bar" to a key the dot repeating works. What I still > don't > understand however, is that "M-x foo" is dot repeatable but not "M-x bar". > >> So please provide a complete example (full function definition, key >> sequences, ...), preferably starting from a fresh emacs instance, that >> demonstrates the problem. Otherwise it is really hard to isolate the >> problem. > > Here's the scenario: > > First, in "scratch" buffer, input the following: > > (defun york-bar () > (interactive) > (save-excursion > (insert "printf(\"checkpoint\")"))) > > Type "C-M-x" to instrument the command `york-bar'. > > Then open a file in c++-mode and "M-x york-bar", "printf()" function > call gets inserted. > > Hit ".", but nothing wouldn't get inserted again. > >> The mode *should* not make difference ... > > Yes, I've tried "M-x york-bar" in an org-mode buffer and got the same > results. > > On the other hand, the command `york-foo' which is dot repeatable even when > being executed by "M-x", is way more complicated, I have tried to isolate it > but > failed, it had been tightly "connected" with my other part of configuration > files (huge). > > The bottom line is, however, `york-bar' is dot repeatable if having it > binded to > some key. Thanks again for the help. > > York > > _______________________________________________ > implementations-list mailing list > [email protected] > https://lists.ourproject.org/cgi-bin/mailman/listinfo/implementations-list > _______________________________________________ implementations-list mailing list [email protected] https://lists.ourproject.org/cgi-bin/mailman/listinfo/implementations-list
