在vim键映射中使用变量
在vim中映射键时如何使用变量?我试图解决的具体问题如下。我需要这些关键映射:在vim键映射中使用变量,vim,Vim,在vim中映射键时如何使用变量?我试图解决的具体问题如下。我需要这些关键映射: nnoremap <C-1> 1gt nnoremap <C-2> 2gt nnoremap <C-3> 3gt ... and so on. 如果我:调用goToTab(3),它将转到选项卡3 如何将Command-x(D-x)映射到goToTab(x),其中x介于1到9之间。如何从Command-x按键读取数字?我得到了坏消息。您不能映射等。您只能绑定,我不会这么做,因为它
nnoremap <C-1> 1gt
nnoremap <C-2> 2gt
nnoremap <C-3> 3gt
... and so on.
如果我:调用goToTab(3)
,它将转到选项卡3
如何将Command-x(D-x)映射到goToTab(x),其中x介于1到9之间。如何从Command-x按键读取数字?我得到了坏消息。您不能映射
等。您只能绑定
,我不会这么做,因为它非常方便
看起来您正在执行一个以选项卡为中心的工作流。我知道这听起来可能很奇怪,但可能使用更少的选项卡窗格和更多的缓冲区。以下是一些关于它的好帖子:
- 使用for循环并使用
创建映射:执行
- Vim的更多方法是使用计数,因此
。7gt
是计数7
:for
和:execute
的示例:
for i in range(1, 9)
execute "nnoremap \<d-" . i . "> " . i . "gt"
endfor
感谢您提供有关缓冲区的信息。我是vim的新手,甚至不知道他们。虽然我将阅读并查找缓冲区,但为了学习Vim,我想尝试并实现上述功能(比如使用命令键而不是控制键)。请看我上面编辑的消息。由于您的其他指示,我离解决方案又近了一步。你或有人能帮我下一步(或解决方案)吗。谢谢那么,可以尝试使用alt映射而不是ctrl映射。我将使用for循环。@Ben如何读取数字(无论是Alt还是Command)作为循环或函数调用的输入?我想举个例子。我认为for循环将不起作用,因为它将从当前选项卡开始计数。这不是说2gt的功能。谢谢。看起来像是添加了一个示例。它不会从当前选项卡开始计数,而且这不是
2gt
将要做的2gt
将始终转到第二个选项卡页,从最左边的选项卡开始,无论您在哪个选项卡上。如果希望从当前选项卡计算,可以使用表达式寄存器。更改您的:execute
行如下所示:执行“nnoremap\”。我“@='gt'\”
。有关更多信息,请参见:h@
,:h@=
,以及本集:
function gotoTab(num)
execute "normal" a:num."gt"
endfunction
for i in range(1, 9)
execute "nnoremap \<d-" . i . "> " . i . "gt"
endfor
:h keycodes
:h map-which-keys
:h :for
:h :exe
:h count
:h v:count
:h range(