Я создал несколько отображений примерно так:
: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>
который работает как хотелось бы.
Сейчас я ищу возможность создать шаблон карты, который позволил бы мне удалить очевидные избыточные части моих отображений, что-то вроде
:nnoremap <buffer> <leader> xyz? :call SomeFunc(?)<CR>
чтобы я мог передать любое значение в качестве параметра SomeFunc
.
Есть ли такая возможность?
key-bindings
Рене Ниффенеггер
источник
источник
input()
илиgetchar()
. Однако, вероятно, более нормально использовать команду вместо отображения для чего-то, что принимает параметр.Ответы:
Как сказал @ peter-rinckler, это, вероятно, проще сделать с помощью команды:
Делает это возможным (в обычном режиме)
Мне не очень нравится,
input()
потому что вы не можете легко повторять такие вещи.источник
Благодаря комментарию Питера Ринкера я нашел ответ:
источник
nnoremap <silent> <leader>tn :exe "tabn" nr2char(getchar())<cr>
. Идея заключается в том , чтобы набрать ,<leader>tn2
чтобы перейти на вкладку 2.Возможно, вы захотите взглянуть на SnipMate , целью которого является предоставление vim-подобных фрагментов TextMate. В любом случае, это оказалось очень полезным для меня.
источник