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

How do I create a Vim keybind that involves numbers (0-9)?

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

:set foldlevel=n

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

\z3

它应该依次调用这个命令:

:set foldlevel=3

是否可以像这样在键绑定中包含数字?如果有,是怎么做到的?

应该这样做

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。

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

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

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