在vim中映射键时如何使用变量?我想解决的具体问题如下。我需要这些关键映射:
nnoremap <C-1> 1gt
nnoremap <C-2> 2gt
nnoremap <C-3> 3gt
... and so on.
我可以指定一个映射;
之类的东西nnoremap <C-x> xgt
其中x取得按下的键的值(可以是1..9)
谢谢。
编辑1:借助Peter Rincker解决方案(尚未完成)
我可以使用这个功能
function gotoTab(num)
execute "normal" a:num."gt"
endfunction
如果我:call goToTab(3)
,则转到标签3.
如何将Command-x(D-x)映射到goToTab(x),其中x介于1..9之间。如何从Command-x按下读取数字?
答案 0 :(得分:5)
我得到了坏消息。你无法映射<c-1>
等。你只能绑定我不会做的<c-6>
因为它非常方便。
您似乎正在做一个以标签为中心的工作流程。我知道这可能听起来很奇怪,但可能会使用较少的选项卡窗格和更多缓冲区。这里有一些很好的帖子:
...好的,但我真的想做这个变量映射的事情。你有选择:
:execute
创建映射7gt
。 7
是计数。使用:for
和:execute
的示例:
for i in range(1, 9)
execute "nnoremap \<d-" . i . "> " . i . "gt"
endfor
注意:这使用Command的<d-...>
语法,该语法仅在MacVim上可用且没有终端支持(请参阅:h <D-
)。您可以将<a-...>
用于Alt。但是我必须警告你在终端上使用Alt可能会很棘手。
如需更多帮助,请参阅:
:h keycodes
:h map-which-keys
:h :for
:h :exe
:h count
:h v:count
:h range(