如何在Vim中使用循环来定义多个映射

时间:2015-04-15 01:59:32

标签: vim

在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

有没有办法进行某种插值?

1 个答案:

答案 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