James Vega wrote: > On Tue, Jan 08, 2008 at 09:12:24AM +1100, Ben Schmidt wrote: >>> The builtin Escape key already expands abbrevs. Isn't this like a part >>> of its definition? If I put <esc> on the right side of a noremap, I do >>> this in order to get this builtin behaviour. >> I disagree. If *I* put <Esc> on the right hand side of a mapping I do it to >> get >> the builtin behaviour of 'exit insert mode', not 'change the text in >> user-customised ways and then exit insert mode'. > > <Esc> *by default* will trigger an abbr if you're at the end of the > {lhs}. So it should still do so when using a noremap. Using one of the > help's examples: > > :ab foo four old otters > ifoo<Esc> > > This will leave you with "four old otters" in the buffer (after the > timeout expires or you press another key). > >> But more importantly, if I put something like "iword " on the right hand >> side of a >> mapping, I expect 'word' to be inserted, not expanded as an abbreviation. >> Much >> more important is if I put ':command something' on the right hand side of a >> mapping, I expect ':command' to get executed, not something else that the >> user has >> defined as an abbreviation. > > I think the original poster would agree on this. His contention was > that <Esc> isn't following its normal behavior when used in a noremap > while it does follow normal behavior in a map.
Indeed. My contention is that it actually is following its normal behaviour in both--ending insert mode. Abbreviations are a user customisation, just as mappings are, which modify the normal behaviour of <Esc> when it occurs after certain user-defined words. As such, it should be excluded from a noremap, IMHO. The whole point of a noremap is to avoid such things to get unmodified behaviour, i.e. as if the user hadn't made customisations. If abbreviations are expanded in a noremap, suddenly it becomes difficult to reliably enter text using a mapping--you have to use <C-C> and then re-enter insert mode or insert arrow keys or <C-V> or something every time you want to end a word, just to avoid it changing due to some abbreviation you don't know about. In my earlier email, pretty much everywhere I wrote 'mapping' I meant a 'noremap' mapping, too; that may well have confused the issue. Ben. Send instant messages to your online friends http://au.messenger.yahoo.com --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---