On Thursday, July 11, 2013 10:45:16 AM UTC-5, Christian Brabandt wrote:
> On Thu, July 11, 2013 17:36, Ben Fritz wrote:
> 
> > On Thursday, July 4, 2013 4:44:26 AM UTC-5, Bram Moolenaar wrote:
> 
> >>
> 
> >> Perhaps we can somehow detect that CTRL-R = had the side effect of
> 
> >>
> 
> >> changing the text and then split undo.  When it only returns the text to
> 
> >>
> 
> >> be inserted, there is no need to split undo.
> 
> >>
> 
> >
> 
> > Even though it won't fix it all the way, I think this is a good idea. It
> 
> > will make things a lot better at least.
> 
> >
> 
> > Then we can do this obviously simplified example without breaking undo:
> 
> >
> 
> > inoremap <Space> <C-R>="\<LT>Space>"<CR>
> 
> 
> 
> Wouldn't in this example CTRL-R= also change the text and therefore break
> 
> undo here as well?
> 

It doesn't change the text directly, it only returns a value.

Actually this mapping seems to work now that I try it again. I'm not sure what 
I did differently when it didn't work the first time I tried. Something is 
making me unable to use delimitMate, because even if set the option that makes 
the <Space> mapping simply return a space, the undo sequence breaks on every 
space insertion.

This is closer to what is actually going on in delimitMate, but I still can't 
reproduce the issue. I will try again later to get a smaller example:

function! Space()
  return "\<Space>"
endfun

inoremap flarbityflarb  <C-]><C-R>=Space()<CR>

imap <Space> <C-]>flarbityflarb

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Raspunde prin e-mail lui