Spiros Bousbouras wrote: > function! Add_line() > call append(0 , "This is a new line") > endfunction > imap <F1> <ESC>:call Add_line()<CR> > > > The above script gets executed and now I am in Insert mode. I > type a few characters and then press <F1>. As expected "This is > a new line" is added at the top of the buffer. Now if I press 'u' > it removes the new line *and* the characters I had typed right > before I pressed <F1>. Is there a way to modify the function > (preferably) or the mapping so that when I press <F1> a new undo > block is created so that when I press 'u' only the modification > by Add_line() gets undone and not what came before I pressed > <F1> ?
You should be able to insert an undo-break, curtly described at :help i_CTRL-G_u so you'd do something like imap <f1> <c-g>u<esc>:call Add_line()<cr> Hope this helps, -tim --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_use" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---
