Stworzyłem kilka takich mapowań:
: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>
który działa zgodnie z życzeniem.
Teraz szukam możliwości stworzenia szablonu mapy, który pozwoliłby mi usunąć oczywiste zbędne części moich mapowań, coś w rodzaju
:nnoremap <buffer> <leader> xyz? :call SomeFunc(?)<CR>
żebym mógł przekazać dowolną wartość jako parametr do SomeFunc
.
Czy jest taka możliwość?
key-bindings
René Nyffenegger
źródło
źródło
input()
lubgetchar()
. Jednak prawdopodobnie bardziej normalne jest użycie polecenia zamiast mapowania dla czegoś, co wymaga parametru.Odpowiedzi:
Jak powiedział @ peter-rinckler, prawdopodobnie łatwiej jest to zrobić za pomocą polecenia:
Umożliwia zrobienie tego (w trybie normalnym)
Nie podoba mi się to,
input()
ponieważ nie można łatwo powtarzać tego rodzaju rzeczy.źródło
Dzięki komentarzowi Petera Rinckera znalazłem odpowiedź:
źródło
nnoremap <silent> <leader>tn :exe "tabn" nr2char(getchar())<cr>
. Chodzi o to, aby<leader>tn2
przejść do zakładki 2.Możesz rzucić okiem na SnipMate , który ma na celu udostępnienie vimowi fragmentów podobnych do TextMate. W każdym razie okazało się to bardzo pomocne.
źródło