Saya telah membuat beberapa pemetaan seperti:
: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>
yang berfungsi seperti yang diinginkan.
Sekarang saya sedang mencari kemungkinan untuk membuat templat-peta yang memungkinkan saya untuk menghapus bagian-bagian yang jelas dari pemetaan saya, sesuatu seperti
:nnoremap <buffer> <leader> xyz? :call SomeFunc(?)<CR>
sehingga saya bisa meneruskan nilai apa pun sebagai parameter ke SomeFunc
.
Apakah ada kemungkinan seperti itu?
key-bindings
René Nyffenegger
sumber
sumber
input()
ataugetchar()
. Namun mungkin lebih normal menggunakan perintah daripada pemetaan untuk sesuatu yang mengambil parameter.Jawaban:
Seperti yang dikatakan @ peter-rinckler, mungkin lebih mudah melakukannya dengan perintah:
Memungkinkan untuk melakukan (dalam mode normal)
Saya tidak terlalu suka
input()
karena Anda tidak dapat mengulangi hal-hal seperti itu dengan mudah.sumber
Berkat komentar Peter Rincker, saya telah menemukan jawabannya:
sumber
nnoremap <silent> <leader>tn :exe "tabn" nr2char(getchar())<cr>
. Idenya adalah mengetik<leader>tn2
untuk menavigasi ke tab 2.Anda mungkin ingin melihat SnipMate , yang bertujuan memberikan potongan seperti TextMate ke vim. Itu terbukti sangat membantu saya.
sumber