2

When you are working with more than 20 files, the number of tabs open overflow the capacity of the tab bars and it becomes really annoying to switch between them. Also, clicking on the tabs is anti-vimish. It's really inefficient.

I've been thinking something in the lines of: 1. Tabs are kept on left (side tabs have higher capacity) 2. Letter tags are assigned to them (a, b, c, d...) 3. In order to switch to a tab you just type a key + it's tag

I think it can't get faster than this. Is there something like that?

4

4 回答 4

2

我重新发布了一篇优秀的博客文章,解释了 Vim 中“窗口”、“缓冲区”和“选项卡”之间的区别。

简短的版本在 romainl 的回答中。处理多个文件的默认方法是使用缓冲区,选项卡仅用于保留特定的窗口布局。

于 2013-05-07T20:15:07.850 回答
2

在其他编辑器中,选项卡是文件的代理:打开文件,将其内容放入内存,处理并最终显示在附加到选项卡的窗口中,标签设置为文件名。tab == file.

在 Vim 中,选项卡是一个“工作区”,旨在承载任意数量的窗口(默认为 1 个),这些窗口可以依次显示缓冲区列表中的任何缓冲区。还要考虑选项卡的标签默认情况下是活动窗口的名称,它可能有用也可能没有用(谁想要标签标签Quickfix window?)。tab != file.

基本单位是缓冲区,缓冲区是全局的:一个缓冲区可以显示在x窗口中的y选项卡中,x并且y优于或等于0。由于无法将缓冲区绑定到特定的窗口或选项卡,因此使用 Vim 选项卡就好像它是这种情况一样是错误的。

正确的方法是直接删除标签并处理缓冲区。毕竟,你想跳转到一个特定的文件,不是吗?

在缓冲区之间导航既快速又简单:

:bn
:bp
:b <Tab>
:b *foo<Tab>

特别是自定义映射:

nnoremap gb :buffers<CR>:b<Space> " beautiful!

而且比强迫 Vim 进入那种可怕的以选项卡为中心的范式要自然得多。如果您仍然有速度问题,即使使用该gb映射,请尝试 CtrlP、Command-T、FuzzyFinder、LustyExplorer 或它们的许多兄弟姐妹。

此外,更一般地说,选项卡不是一个好主意,因为随着数量的增加,它们往往会失去其用处……可用于显示选项卡的水平空间通常是固定的,或者至少是有限的。因为标签是水平书写的,而且文件名通常超过几个字符,可用空间迅速缩小,必须做出各种妥协以保持标签“可用”。名称和选项卡被缩短或在选项卡行的每一端添加 gyzmos 以进行滚动……基本上,找到您正在寻找的内容所需的工作量增加得太快,以至于选项卡无法成为有效的通用解决方案。

于 2013-05-07T19:39:30.573 回答
1

对于浏览器和其他应用程序,您必须使用选项卡;没有别的了。在 Vim 中,标签页只是最近(第 7 版)的新增功能,并且是完全可选的。许多人认为使用太多它们是一种反模式。我通常使用它们来隔离不同的项目。

看起来您还没有找到在 Vim 中管理文件的最佳策略。由于这在很大程度上取决于您的项目和工作流程,因此很难给出建议。但是你会发现(太多)关于这个主题的博客文章,以及vim.org上的大量插件。耐心点,尝试不同的方法,你会找到更好的方法。

PS:您想象的解决方案(侧选项卡)不能在 Vim 中完成。

于 2013-05-07T19:01:42.437 回答
0

您可以使用gt移动到下一个选项卡并gT移动到上一个选项卡。

您还可以使用<number>gt移动到具有该编号的选项卡。这使您可以根据其编号移动到任何选项卡。选项卡开始计数数字 1。要找出每个选项卡的数字,您可以使用:tabs

于 2013-05-07T17:19:17.050 回答