如何在vim中基于增量搜索切换选项卡?

c00*_*ter 2 vim performance tabs switching

例如,假设我在vim中打开了三个选项卡:

1: nice_program.c
2: something_fun.h
3: super_script.sh
Run Code Online (Sandbox Code Playgroud)

因此,如果我点击一个魔术修饰键,然后输入'n'并按Enter键我将标签更改为标签1.同样,输入'su'将改为导航我到标签3.

这样的行为可能吗?有很多vim扩展,我真的没有得到整个vim扩展术语.

顺便说一下,我在XP上使用gVim,在OS X上使用MacVim.最好是解决方案适用于...

编辑:

请注意,我只希望增量搜索搜索打开的选项卡的名称.也就是说,它不应该在标签内部实际搜索.

此外,我从不使用缓冲区,它是我希望这个工作的选项卡.

ib.*_*ib. 7

从问题的措辞来看,似乎你在Vim中采用了标签的概念,而不是设计这个功能应该采用的方式.Vim选项卡页面不是缓冲区或窗口的形式,而是窗口布局容器.难怪没有内置的方法可以通过活动缓冲区的名称切换到选项卡(或者是其标签页中的唯一一个,或者以其他方式特殊).在语义上,即切换到缓冲区而不是选项卡(但是如果有必要,可以切换选项卡以显示缓冲区).

要按名称切换到缓冲区,请使用:sbuffer命令(:sb简称).由于命令具有自动完成功能,因此无需每次都键入整个缓冲区名称.通常只需要键入几个字母的字母来唯一标识缓冲区(与您在问题中描述增量搜索的方式相同).

默认情况下,Vim打开请求的缓冲区,在当前窗口中替换一个缓冲区.此行为由switchbuf选项控制.usetab如果该窗口包含要编辑的缓冲区,则该选项提供的选项之一(被调用)允许切换到另一个选项卡页面中的窗口.这正是适合您使用标签页的工作方式的内容.

总而言之,如下改变切换行为

:set switchbuf=usetab
Run Code Online (Sandbox Code Playgroud)

并使用该:sb命令通过键入其名称的几个字母并使用Tab-completion 来打开缓冲区.