如何在Vim中重复诸如更改制表符“gt”之类的命令,而无需反复键入?

如何在Vim中重复诸如更改制表符“gt”之类的命令,而无需反复键入?,vim,Vim,当我想更改选项卡时,我按gt进入下一个选项卡 然而,我有几个这样的标签,它变得非常奇怪 而gt只是一个例子,在其他情况下,有些东西 只需按一个键就可以重复一个人的命令,或者按住一个键而不是按两个或多个键就可以了 知道在Vim里怎么做吗 如何重复命令 通常,您可以在Vim命令之前使用,以将其重复一定次数。例如,您可以使用5j向下五行,使用4w转到下一个单词的第四行,使用3dd删除三行 尽管计数通常作为重复使用,但情况并非总是如此,gt命令是一个例外示例,其中使用计数会使Vim转到第n个选项卡,因此

当我想更改选项卡时,我按
gt
进入下一个选项卡

然而,我有几个这样的标签,它变得非常奇怪

gt
只是一个例子,在其他情况下,有些东西 只需按一个键就可以重复一个人的命令,或者按住一个键而不是按两个或多个键就可以了

知道在Vim里怎么做吗

如何重复命令

通常,您可以在Vim命令之前使用,以将其重复一定次数。例如,您可以使用
5j
向下五行,使用
4w
转到下一个单词的第四行,使用
3dd
删除三行

尽管计数通常作为重复使用,但情况并非总是如此,
gt
命令是一个例外示例,其中使用计数会使Vim转到第n个选项卡,因此
3gt
不会跳过选项卡,而是转到第三个选项卡。(但对于
gT
而言,计数用作重复,因此
3gT
将转到前三个选项卡。)

只需按一个键就可以重复命令

对于修改缓冲区的正常模式命令,您通常可以使用
命令重复最后一个命令,这样就有资格按单个键。您还可以将计数与
一起使用,例如,您可以使用
5.
将该修改重复五次

但是,
gt
的情况并非如此,因为它不是更改当前缓冲区的命令

你可以,在这种情况下,你可以用同一个键重复两次

例如,您可以键入
qtgtq
将“下一个选项卡”命令记录到寄存器“t”中,然后键入
@t
重复该命令一次,然后键入
@
下次重复该命令(
@
将执行上次使用的宏)。因此,假设您发现按
@
比按
gt
更方便,这是可能的

最后,如果您真正想要的是能够使用一次按键来更改选项卡,那么您可以继续快速按以更快地在选项卡之间循环,然后您需要的是映射,以创建新的键绑定

例如,如果要使用Control-T更改选项卡,请使用以下命令:

:nnoremap <c-t> gt
:nnoremap gt
这将允许您通过按Control-T切换到下一个选项卡。您可以在反复按“T”的同时轻松地按住Control键(甚至可以从键盘驱动程序中按住以重复)

请注意,您可能会选择一个为另一个函数服务的键(Control-T跳回标记堆栈),因此您可能需要考虑这一点