e.g。在正常模式下,我输入
123 456<Enter>
我想将数字123
和456
作为vim函数的参数传递。
代码示例:
function! PrintNum(A, B)
echo A B
endfunction
nmap A B<Enter> call PrintNum(A, B)
A
和B
可以是space
分隔符的任何数字。请注意,函数PrintNum()
仅用于测试两个数字是否正确通过函数。
答案 0 :(得分:3)
这是你要求的,但需要注意的是,这是非常常见的:
function! PrintNum(b)
echo g:a a:b
endfunction
nnoremap <silent> <Space> :<C-u>let g:a = v:count<CR>
nnoremap <silent> <Enter> :<C-u>call PrintNum(v:count)<CR>
映射通常只采用计数和/或注册。如果您需要更多,通常使用自定义命令:
command! -nargs=+ PrintNum call PrintNum(<f-args>)
如果键入太多,您可以定义触发器映射,因此您只需输入数字并使用 Enter 确认:
nnoremap <Enter> :PrintNum<Space>
或者,映射可以查询参数:
nnoremap <Enter> :call PrintNum(input('First number: '), input('Second number: '))<CR>