能否在分屏中打开一个选项卡?

5

我目前有一个Vim配置,在左侧有NERDtree,在底部有一个终端,主编辑器在右上角。我希望在编辑器分割中的选项卡中打开新文件,而不是用新文件替换整个屏幕。这可能吗?


1
不好意思,Vim在窗口管理方面相当有限。https://github.com/jistr/vim-nerdtree-tabs是一个hack,可以让nerdtree在所有标签页中保持打开状态,就像现代编辑器一样。 - Andy Ray
@AndyRay Vim是非常现代化的,正在积极开发中。然而,Vim并不是为项目抽屉式体验而构建的。虽然可以做到,但并不容易。请参阅此文章 - D. Ben Knoble
1
在Vim中,选项卡与其他编辑器中的选项卡完全不同。你想要的是缓冲区管理,这在原始的Vim中是可能的,因为这更类似于其他编辑器所称的“选项卡”。请参见:h buffers - Hauleth
3个回答

7
我认为我理解了你想要实现类似IDE的工作流程,这是完全可能的,但选项卡并不是实现它的方式。由于选项卡是窗口布局,代表编辑器空间的一个独立视图,因此它们可以用于,比如说拥有同一工作流程的多个视图,例如编辑器视图和调试视图或者您能想到的任何内容。
我认为我们正在寻找的是使用vim缓冲区。例如,在单个布局(选项卡)中打开Nerdtree、终端 :term 以及与您的工作流程相关的任何内容。然后,您想要使用编辑器窗口(分割)来编辑多个缓冲区。
如何使用缓冲区的非常好的摘要可以在这里找到: https://joshldavis.com/2014/04/05/vim-tab-madness-buffers-vs-tabs/

4

简而言之:不可以

Vim中的一个标签页“包含一个或多个窗口”(:help tab-page-intro)。也被称为窗口的集合。Vim在窗口管理方面非常强大,允许您创建任何所需的编辑窗口组合,然后创建一个新的标签页来处理其他事情,而不会破坏您精心设计的布局。

您不能使一个分屏像一个标签页;相反,您可以进一步拆分该窗口,或使用:edit:find:Explore和许多其他方法在文件之间切换。

例如,请参阅我在评论中链接的文章


1

我对这个问题的解决方案是使用NERDTreeMirror来模拟分割中的标签页。

将此添加到vimrc文件中可能会实现类似于IDE静态浏览器窗格的效果。它对我大多数情况下都有效:

Plugin 'preservim/nerdtree'
autocmd VimEnter * NERDTree
autocmd BufWinEnter * NERDTreeMirror

第一个autocmd在启动时启动NERDTree。

第二个autocmd将现有的NERDTree克隆到任何新标签页中。

因此,如果您在NERDTree中的节点上按下t,它将在新的选项卡窗口中打开该节点(文件,可能是)。而且,NERDTree将在该新选项卡中的分割窗格中镜像

这基本上是将NERDTree窗格复制到每个选项卡中,但对于人类来说,效果类似于IDE的静态浏览器窗格。

最近,我发现我并不总是需要NERDTree,所以我删除了第一个autocmd,如果需要,就会手动启动NERDTree。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接