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
" - ...

-- 
Andy

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Reply via email to