Eu criei alguns mapeamentos como este:
:nnoremap <buffer> <leader>xyzABC :call SomeFunc('ABC')<CR>
:nnoremap <buffer> <leader>xyzDE :call SomeFunc('DE')<CR>
:nnoremap <buffer> <leader>xyzFoo18 :call SomeFunc('Foo18')<CR>
:nnoremap <buffer> <leader>xyzBar22 :call SomeFunc('Bar22')<CR>
que funciona como desejado.
Agora estou procurando a possibilidade de criar um modelo de mapa que me permita remover as partes redundantes óbvias dos meus mapeamentos, algo como
:nnoremap <buffer> <leader> xyz? :call SomeFunc(?)<CR>
para que eu pudesse passar qualquer valor como parâmetro para SomeFunc
.
Existe essa possibilidade?
key-bindings
René Nyffenegger
fonte
fonte
input()
ougetchar()
. No entanto, é provavelmente mais normal usar um comando em vez de um mapeamento para algo que aceita um parâmetro.Respostas:
Como o @ peter-rinckler disse, provavelmente é mais fácil fazê-lo com um comando:
Torna possível fazer (no modo normal)
Eu realmente não gosto disso
input()
porque você não pode repetir esse tipo de coisa facilmente.fonte
Graças ao comentário de Peter Rincker, encontrei a resposta:
fonte
nnoremap <silent> <leader>tn :exe "tabn" nr2char(getchar())<cr>
. A idéia é escrever<leader>tn2
para navegar para guia 2.Você pode dar uma olhada no SnipMate , que visa fornecer snippets do tipo TextMate ao vim. De qualquer forma, provou-me muito útil.
fonte