【问题标题】:Why do you use tabs in g(vim) when you're programming?为什么在编程时在 g(vim) 中使用制表符?
【发布时间】:2011-07-28 20:24:47
【问题描述】:

Using vim's tabs like buffers:

vim 的选项卡不是这样的 设计使用。事实上,他们是 名字错了。一个更好的名字应该是 “视口”或“布局”,因为那是 什么是标签 - 它是不同的 你所有的窗户的布局 现有的缓冲区。

如果 vim 中的每个选项卡只是所有现有缓冲区的不同布局(因此在每个选项卡中执行:ls,显示相同的列表),那么 vim 中选项卡的存在不是无用的吗?如果我可以使用插件来处理像 minibufexplorer 之类的缓冲区,为什么标签存在?仅在该选项卡上执行:ls 时,是否至少应显示在该选项卡中打开的缓冲区(以某种方式类似于“工作区”功能)?

我认为打开了多个带有不同文件的选项卡,但是当尝试在选项卡上执行 :bn 时,它会转到所有打开的缓冲区,它变得一团糟。有些人喜欢在开发时为每个问题的“领域”打开不同的选项卡,但我对我来说,如果可能的话,这将非常有用to have a different buffer list for each tab in Vim

(我搜索了很多,但找不到为什么标签存在,只是“停止使用 vim 中的标签,就像其他编辑器中的标签一样,改用缓冲区”,那么为什么要实现 vim 中的标签?这就是为什么我不要认为这个问题是重复的)

总结...您对这个主题有什么看法 - Vim 中选项卡在编程时的用处?你是怎么用的?

【问题讨论】:

  • 这是一个主观问题,所以你可能不会走得太远。

标签: vim tabs


【解决方案1】:

每个选项卡都可以有自己的工作目录,这使得分组和使用类似的文件组更加方便。

另外,直接来自:help tabpage

Tabs are also a nice way to edit a buffer temporarily without changing 
the current window layout.  Open a new tab page, do whatever you want
to do and close the tab page.

【讨论】:

  • 嗯,我听说过不同工作目录的可能性,这就是我问的原因:既然每个选项卡都可以有自己的工作目录,为什么他们不能有自己的缓冲区列表默认?这不是设计缺陷吗?
  • 这更像是一个设计决策。如果我不得不猜测,选项卡最近才出现在 vim 的开发中(相对地)这一事实可能会阻碍它们在没有完全重写的情况下究竟可能发生的事情。想想有多少命令和事物对单个缓冲区列表做出假设。当然纯属猜测。
  • 嗯,很好。 “想想有多少命令和事物对单个缓冲区列表做出假设”。事实上,关于这个设计决策,我不知道的还有更多。
  • 就我个人而言,我发现不允许我在单个窗口中显示多个文件的编辑器会受到限制。
【解决方案2】:

我经常使用选项卡,并使用它们对文件进行逻辑分组。

例如,我将在一个选项卡中打开视图或 HTML,在另一个选项卡中打开相关的控制器,在另一个选项卡中打开相关的模型。然后我将使用:mksession! 保存布局,稍后使用-S 标志重新加载它。

其他时候我会使用标签来保持 vim 的帮助页面之一打开,以便立即可用。

我认为主要是选项卡允许您以与使用拆分窗口不同的方式组织缓冲区,并且这种灵活性允许 vim 与更多人的大脑一起工作,因为我们都有不同的想法。

对相关问题的回答可能会有所帮助:Using Vim's tabs like buffers

我通常使用-O 标志在拆分窗口中打开文件,但如果您坚持在单独的选项卡中打开它们,您可以使用-p。我更喜欢拆分,因为我可以轻松地并排看到两个单独的文件,这是标签无法做到的。

最后,我使用了一些关键的定义,以便在拆分之间轻松移动:

" Switch between window splits using big J or K and expand the split to its
" full size.
"
" Move vertically in the window through the horizontal splits...
map <C-J> <C-w>j<C-w>_
map <C-K> <C-w>k<C-w>_

" Move horizontally in the window through the vertical splits...
map <C-H> <C-w>h<C-w>\|
map <C-L> <C-w>l<C-w>\|

【讨论】:

    【解决方案3】:

    当我的当前视图被尽可能多地拆分时,我通常使用标签,同时仍然允许我有效地阅读和编程。大多数时候它在那里,以便我可以快速访问该文件的信息(通常是某种包含文件)。

    我很少在实际开发中使用标签,而是将我想偶尔查看的信息用作占位符。

    正常情况下我有

    Tab0 -> 源文件和测试文件
    Tab1 -> 包含文件,有时还有相关的接口文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-22
      • 2017-06-27
      • 2011-10-05
      相关资源
      最近更新 更多