在Vim中有一种方法可以用循环定义多个映射吗?
例如,这就是如何在没有循环的情况下定义它。
nnoremap<leader>1 1gt
nnoremap<leader>2 2gt
nnoremap<leader>3 3gt
但是我想用循环来做这样的事情。
for i in [1, 2, 3]
nnoremap<leader>${i} ${i}gt
endfor
有没有办法进行某种插值?
答案 0 :(得分:4)
是的,:execute
命令:
:exe[cute] {expr1} .. Executes the string that results from the evaluation
of {expr1} as an Ex command.
所以你的例子就是
for i in [1, 2, 3]
execute 'nnoremap <leader>'.i.' '.i.'gt'
endfor