Criar atalhos de teclado parametrizados

0

Gostaria de mapear +Ngt e -Ngt para :tabnext N e :tabprev N . Eu posso criar ligações de teclas como:

nnoremap <buffer> <silent> +1gt :tabnext 1
nnoremap <buffer> <silent> +2gt :tabnext 2
nnoremap <buffer> <silent> +3gt :tabnext 3
nnoremap <buffer> <silent> +4gt :tabnext 4
nnoremap <buffer> <silent> +5gt :tabnext 5
nnoremap <buffer> <silent> +6gt :tabnext 6
...

mas posso fazer melhor? (Não que eu realmente queira mover "6 abas para frente", já que seria muito mais lento do que apenas digitar Ngt , mas IMO é natural fazer essa pergunta para referência futura.)

Um ótimo exemplo seria o comando NG que salta para a linha N . Eu duvido muito que o Vim internamente adicione teclas de atalho separadas para cada linha que possivelmente possamos pular.

    
por rr- 17.05.2015 / 13:55

1 resposta

1

Sim, você pode fazer melhor:

nnoremap <silent> gt @=":tabnext\n"<CR>

Em seguida, 6gt moverá 6 guias para frente etc. Usar o registro de expressão = é um truque para tornar um mapa repetível por um prefixo de número.

Em uma nota lateral: você também pode fazer melhor publicando perguntas relacionadas ao Vim em sua página inicial . :)

    
por 17.05.2015 / 18:05

Tags