У меня есть inoremap <C-d> <C-o>:%s/\<<C-r><C-w>\>\C//g<Left><Left> , который отлично работает (более или менее эмулирует многоточечный указатель для всего возвышенного текста ).

Однако он оставляет меня в обычном режиме, могу ли я использовать функцию ввода вместо этого, чтобы вернуть меня в режим вставки?

1 ответ1

1

После еще нескольких копаний я нашел https://stackoverflow.com/questions/15273810/remap-key-and-get-user-input и в итоге принял его таким образом:

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>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .