Como executar algo no modo de inserção, obter entrada do usuário e depois retornar ao modo de inserção?

0

Eu tenho inoremap <C-d> <C-o>:%s/\<<C-r><C-w>\>\C//g<Left><Left> , o que funciona muito bem (emulando o cursor multi-localização de todos os tipos de texto mais ou menos).

No entanto, isso me deixa no modo normal, existe alguma maneira que eu possa usar a função de entrada para que ele me coloque de volta no modo de inserção?

    
por OneOfOne 12.09.2014 / 23:00

1 resposta

1

Depois de mais algumas pesquisas, encontrei o link e acabei adotando-o em uma maneira:

function! PoorMultiCursor()
    let word = expand('<cword>')
    if strlen(word) > 0
        call inputsave()
        let repl = input('replace "'.word.'" with: ')
        call inputrestore()
        if strlen(repl) > 0
            execute '%s/\<'.word.'\>/'.repl.'/g'
        endif
    endif
endfunction


" sublime text's ctrl+d / alt+f3 (find all)
inoremap <C-d> <C-o>:call PoorMultiCursor()<cr>
nnoremap <C-d> :call PoorMultiCursor()<cr>
vnoremap <C-d> :call PoorMultiCursor()<cr>
    
por 12.09.2014 / 23:34

Tags