J'ai créé quelques mappages comme ceci:
: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>
qui fonctionne comme vous le souhaitez.
Je cherche maintenant une possibilité de créer un modèle de carte qui me permettrait de supprimer les parties redondantes évidentes de mes mappages, quelque chose comme
:nnoremap <buffer> <leader> xyz? :call SomeFunc(?)<CR>
afin que je puisse passer n'importe quelle valeur comme paramètre à SomeFunc
.
Y a-t-il une telle possibilité?
key-bindings
René Nyffenegger
la source
la source
input()
ougetchar()
. Cependant, il est probablement plus normal d'utiliser une commande au lieu d'un mappage pour quelque chose qui prend un paramètre.Réponses:
Comme l'a dit @ peter-rinckler, il est probablement plus facile de le faire avec une commande:
Permet de faire (en mode normal)
Je n'aime pas vraiment ça
input()
parce que vous ne pouvez pas répéter ce genre de choses facilement.la source
Grâce au commentaire de Peter Rincker, j'ai trouvé la réponse:
la source
nnoremap <silent> <leader>tn :exe "tabn" nr2char(getchar())<cr>
. L'idée est de taper<leader>tn2
pour accéder à l'onglet 2.Vous voudrez peut-être jeter un œil à SnipMate , qui vise à donner des extraits de type TextMate à vim. Cela m'a été très utile de toute façon.
la source