On Fri, May 22, 2009 at 22:52, Andy Wokula <[email protected]> wrote: > > Erik Wognsen schrieb: >> I've seen this in the Mac editor TextMate: Block mode insert inserts >> the characters in all relevant lines _as you type_! >> >> It's by no means an important feature, but would look spiffy. I >> figured that when vim keeps different buffers for the same file >> synchronized as you type, doing this with lines in the same buffer >> would be possible. >> >> Are we going to see this feature someday? >> >> Regards, >> Erik Wognsen > > here is something in Vim script > ... basically the same as what worked for the "typewriter": > It's like doing I{char}<Esc> from Visual block mode for every > character typed in. > > > " start "synchronized Visual-block-insert mode" with v_gI : > xmap gI <Plug>sim > > vmap <script> <Plug>sim I<SID>m_ > > imap <SID>m_<Esc> <Esc> > ino <silent> <SID>m_ <C-R>=TwGetchar()<CR> > > func! TwGetchar() > if getchar(1) > let chr = s:getchar() > else > let chr = "." > endif > call feedkeys("\<Plug>sim") > if chr == "\<BS>" > return "\egvhohxgv" > elseif chr == "\<C-U>" > return "\egvhoh0xgv" > else > return chr. "\egvlol" > endif > endfunc > > func! s:getchar() > let chr = getchar() > if chr != 0 > let chr = nr2char(chr) > endif > return chr > endfunc > > > " many problems yet ... but no serious ones: > > " TODO > " - restrict to Visual block mode > " - handle situation when cursor cannot move left > " - Visual block mode, more than one column selected, <BS> pressed: prevent > " data loss > " - listen to 'backspace' option (let cursor not move left from Insert start > " position) > " - don't insert dummy char when not pressing a char within 'timeoutlen' > " - check with 'selection' not at default > " - enable [count]gI > " - ... > " - much more > " - ...
That's kinda cool. Do you think you could make it work with <C-W> ? I tried ''' elseif chr == "\<C-W>" return "\egvhohbxgv" ''' but it doesn't work properly.. Could be cool to have it built-in though :-) (And have it work with block append as well..) /Erik --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_use" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---
