Como manter a seleção visual do Vim com movimento personalizado?

0

Eu tenho alguns utilitários de movimento no meu vim rc que me ajudam a navegar no arquivo mais rapidamente, mas também gostaria de usá-los na seleção visual. Aqui está a ligação de chave atual que tenho: em ~ / .vimrc

nnoremap <C-h> b
nnoremap <C-l> w
nnoremap <C-j> 5j
nnoremap <C-k> 5k
nnoremap <Tab> :call Tab() <CR>

function! Tab()
    let col = col(".")
    let line = line(".")
        normal! %
    if (col == col(".") && line == line("."))
        normal! $
    endif
endfunction

Existe uma maneira de selecionar visualmente esses utilitários?

Kexin Lu
fonte

Respostas:

0

Basta adicionar mapeamentos de modo visual correspondentes:

vnoremap <C-h> b
vnoremap <C-l> w
vnoremap <C-j> 5j
vnoremap <C-k> 5k
vnoremap <Tab> :<c-u>call Tab()<CR>gv

Observe que é necessário algum trabalho extra para o <Tab>mapeamento no modo visual. Nomeadamente, limpe os marcadores visuais de contorno automáticos ao entrar no modo de comando: e, em seguida, selecione novamente a área visual após a chamada da função.

Heptite
fonte
:%s/vnore/xnore
Romainl