我想要映射:b<buffer_number><cr>
到<leader>b<buffer_number>
。我有:
nmap <leader>b :b
这还不够,因为我还得按Enter。我还尝试过:
nmap <leader>b :execute 'b' (v:count) <cr>
答案1
要使用[count]
,您可以定义:
nnoremap <leader>b :<C-u>execute 'b' v:count<cr>
有了这个,你必须前置计数,例如4<Leader>b
,这也与其他 Vim 命令一致。<C-u>
删除自动添加的范围。
尾随计数的问题在于确定要查询多少位数字;然后,您要么需要指定所有数字(即而03
不是3
),要么查询另一个键来结束映射,要么等待超时。
这是一个仅查询单个数字的简单映射:
nnoremap <leader>b :execute 'b' nr2char(getchar())<cr>
(附言:你应该使用:noremap
;它使映射不受重新映射和递归的影响。)
答案2
已经有了[count]<C-^>
(或[count]<C-6>
在某些键盘布局上):
2<C-^>
6<C-^>
等等…