如何创建涉及数字(0-9)的Vim键绑定?

时间:2015-01-16 06:58:34

标签: vim

我想创建一个用于将折叠级别设置为特定数字的键绑定。 ex命令是:

:set foldlevel=n

n是折叠级别。我想绑定<leader>z加上一个数字来设置折叠级别。我的目标是这个调用(假设我的领导键是\):

\z3

然后它应该调用此命令:

:set foldlevel=3

是否可以将数字包含在像这样的键绑定中?如果是这样,它是如何完成的?

2 个答案:

答案 0 :(得分:4)

通常的方式是另一种方式,首先是[count]。这使得处理大于一位数的数字变得容易(尽管它对于折叠级别可能不那么重要)。您可以使用v:count特殊变量,如:

:nnoremap <silent> <Leader>z :<C-u>let &foldlevel = v:count<CR>

需要<C-u>才能删除自动插入的范围。我使用:let作为选项分配,但:execute也可以使用。

答案 1 :(得分:2)

这应该这样做

for key in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  exe "nmap <silent> <leader>" . key . " " . ":set foldlevel=" . key . "<cr>"
endfor

如果要构建动态映射,则需要使用execute命令。如果您不熟悉vimscript,则该点代表字符串连接。