gpt4 book ai didi

vim - 在 vim 键映射中使用变量

转载 作者:行者123 更新时间:2023-12-04 13:37:33 24 4
gpt4 key购买 nike

在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) 映射到 x 介于 1..9 之间的 goToTab(x)。如何从 Command-x 按下读取数字?

最佳答案

我得到了坏消息。你不能映射<c-1>等。只能绑定(bind)<c-6>我不会这样做,因为它非常方便。

似乎您正在做一个以标签为中心的工作流程。我知道这听起来可能很奇怪,但可能会使用更少的选项卡 Pane 和更多的缓冲区。这里有一些关于它的好帖子:

  • Why do Vim experts prefer buffers over tabs?
  • Use buffers effectively!

  • ...好的,但我真的很想做这个变量映射的事情。您有以下选择:
  • 使用 for 循环并使用 :execute创建映射
  • 更多的 Vim 方式是使用计数所以 7gt . 7是计数。

  • 使用示例 :for:execute :
    for i in range(1, 9)
    execute "nnoremap \<d-" . i . "> " . i . "gt"
    endfor

    注意:这里使用 <d-...>仅在 MacVim 上可用且不支持终端的 Command 语法(参见 :h <D- )。您可以使用 <a-...>对于 Alt。但是我必须警告您在终端上使用 Alt 可能会很棘手。

    如需更多帮助,请参阅:
    :h keycodes
    :h map-which-keys
    :h :for
    :h :exe
    :h count
    :h v:count
    :h range(

    关于vim - 在 vim 键映射中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26853667/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com