如何创建涉及数字 (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
也可以。
我想创建一个键绑定来将折叠级别设置为特定数字。 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
也可以。