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