He creado algunas asignaciones de esta manera:
: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 se desee
Ahora estoy buscando la posibilidad de crear una plantilla de mapa que me permita eliminar las partes redundantes obvias de mis asignaciones, algo así como
:nnoremap <buffer> <leader> xyz? :call SomeFunc(?)<CR>
para poder pasar cualquier valor como parámetro a SomeFunc
.
¿Existe tal posibilidad?
key-bindings
René Nyffenegger
fuente
fuente
input()
ogetchar()
. Sin embargo, es probable que sea más normal usar un comando en lugar de una asignación para algo que toma un parámetro.Respuestas:
Como dijo @ peter-rinckler, probablemente sea más fácil hacerlo con un comando:
Hace posible hacerlo (en modo normal)
Realmente no me gusta
input()
porque no puedes repetir ese tipo de cosas fácilmente.fuente
Gracias al comentario de Peter Rincker, he encontrado la respuesta:
fuente
nnoremap <silent> <leader>tn :exe "tabn" nr2char(getchar())<cr>
. La idea es escribir<leader>tn2
para navegar a la pestaña 2.Es posible que desee echar un vistazo a SnipMate , que tiene como objetivo proporcionar fragmentos similares a TextMate a vim. Resultó muy útil para mí, de todos modos.
fuente