使用许多文件时,VIM效率低下

时间:2013-05-07 16:50:52

标签: vim plugins

当您处理超过20个文件时,打开的标签数会溢出标签栏的容量,在它们之间切换会变得非常烦人。此外,单击选项卡是反对vimish。这真的很低效。

我一直在思考以下几点: 1.标签保留在左侧(侧面标签具有更高的容量) 2.为它们分配了字母标签(a,b,c,d ......) 3.要切换到标签,只需键入一个键+它的标签

我认为它不能比这更快。有类似的东西吗?

4 个答案:

答案 0 :(得分:2)

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

在Vim中,选项卡是一个“工作空间”,用于托管任意数量的窗口(默认为1),这些窗口又可以显示缓冲区列表中的任何缓冲区。另请注意,选项卡的标签默认为活动窗口的名称,该名称可能有用,也可能没用(谁想要标记为Quickfix window的选项卡?)。 tab != file

基本单位是缓冲区,缓冲区是全局:缓冲区可以显示在xy选项卡中的x个窗口中y和{{1}高于或等于0。由于没有方法将缓冲区绑定到特定窗口或选项卡,因此使用Vim选项卡就好像是一个错误。

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

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

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

特别是自定义映射:

nnoremap gb :buffers<CR>:b<Space> " beautiful!
并且比将Vim强加到以可怕的以标签为中心的范例更自然。如果您仍然有速度问题,即使使用gb映射,请尝试使用CtrlP,Command-T,FuzzyFinder,LustyExplorer或他们的兄弟姐妹。

另外,更一般地说,标签是一个糟糕的主意,因为它们随着数量的增长而倾向于失去其实用性......可用于显示标签的水平空间通常是固定的或至少是有限的。由于标签是水平书写的,文件名通常长度超过几个字符,因此可用空间迅速缩小,必须做出各种妥协以保持标签“可用”。缩短名称和标签或在标签行的每一端添加gyzmos以进行滚动...基本上,找到您正在查找的内容所需的工作量增加得太快,以使标签成为有效的通用解决方案。

答案 1 :(得分:2)

我重新发布了excellent blog post来解释Vim中“窗口”,“缓冲区”和“标签”之间的区别。

简短的版本是romainl的回答。处理多个文件的默认方法是使用缓冲区,只有标签才能保留特定的窗口布局。

答案 2 :(得分:1)

使用浏览器和其他应用程序,您必须使用标签;没有别的。在Vim中,标签页只是最近的(版本7)添加,完全可选。使用太多它们被许多人视为反模式。我通常使用它们来隔离不同的项目。

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

PS:您想象的解决方案(侧面标签),无法在Vim中完成。

答案 3 :(得分:0)

您可以使用gt移至下一个标签页,然后gT移至上一个标签页。

您还可以使用<number>gt移动到包含该号码的标签。这允许您根据其编号移动到任何选项卡。标签开始计算数字1.要查找每个标签的编号,您可以使用:tabs