Jean-Philippe Bernardy wrote: > Can you detail what parts of the emacs emulation you have broken?
I eliminated your use of `forever' in Yi.Keymap. This way, Yi.Core.dispatch can reliably observe when a key sequence has been “accepted”, and only then record an InteractivePoint. The patch supposedly breaks what the comment about the use of `forever' refers to, namely: < extractTopKeymap :: KeymapSet -> Keymap < extractTopKeymap kms = do < startTopKeymap kms >> topKeymap kms < -- Note the - currently disabled! - use of "forever": this has quite < -- subtle implications, as it means that failures in one iteration can < -- yield to jump to the next iteration seamlessly. eg. in emacs < -- keybinding, failures in incremental search, like <left>, will "exit" < -- incremental search and immediately move to the left. As far as I see, the described behaviour is irrelevant for vim, where e.g. <left> in incremental search will move the cursor in the minibuffer. Simply moving the `forever' into Yi.Keymap.Emacs only does not do the trick, because this, although reestablishing the general behaviour, will mean that InteractivePoints will never be recorded in emacs mode (that is, `C-x u' undoes everything that you did). That's why I'm considering delegation of Undo tracking to the keymaps, but I'm not sure if, or how, that's to be done. >> Sun Sep 13 02:40:39 CEST 2009 Kalman Noel <[email protected]> >> * Change event handling to get useful Vim Undo --~--~---------~--~----~------------~-------~--~----~ Yi development mailing list [email protected] http://groups.google.com/group/yi-devel -~----------~----~----~----~------~----~------~--~---
