如何将 vim 选项卡转换为垂直分割?

如何将 vim 选项卡转换为垂直分割?

我使用过 VS Code,并且喜欢将窗口拖放到右侧以创建垂直分割的方式。

有时我用vim打开很多文件( vim -p *py)。在浏览选项卡时,我觉得这个特定的选项卡应该是垂直分割的。

忘记拖放部分,如何使当前选项卡垂直分割? (我已经splitright定了)

编辑:

正如建议的麻雀1029:vs sb#有效,但保持前一个缓冲区完好无损,我们可以以某种方式删除它吗?也许某些功能绑定到击键?

答案1

如果你读过本文,它将帮助您理解vim 中bufferswindows、 和之间的区别。tabs

这个答案在超级用户上有一种解决方案:

vs和命令vsplit将文件名作为参数,就像:vs somefile以垂直分割方式打开文件一样。

要将现有缓冲区放入拆分窗口中,请使用该sb#命令(其中 # 是缓冲区编号)。 VIM 中的分割默认为水平分割,要更改此设置,请在命令前添加 vert 前缀,这会强制下一个分割命令垂直分割。

:vert sb#

其中#是要在当前窗口中显示为拆分的缓冲区的编号。

要显示当前活动的缓冲区,您可以使用:ls!:buffers

解决方案#1在之前链接的关于 vim windows/tabs/buffers 的文章中建议航空公司vim 插件,用于显示当前打开的缓冲区,就像您期望“选项卡”在其他编辑器中工作一样。

答案2

TL;DR:在 Vim 中使用缓冲区代替制表符。

如果我理解正确,问题是您想将该文件保留在拆分窗口中尽管您更改另一侧的文件,以便可以保持另一个文件可见。

事实证明,Vim 中的选项卡实际上并不是这样工作的,选项卡是窗口的集合,因此每当您更改选项卡时,您都会立即切换所有窗口。如果您同时处理不同的窗口集,这非常有用。

但看起来这不是您想要的,因为您想一次在一个窗口中更改文件。

为此,您需要使用缓冲区在 Vim 中,而不是选项卡。缓冲区是与其他编辑器(例如 VS Code)中的选项卡最相似的 Vim 功能。

只需在打开文件时使用vim *.py(没有-p在选项卡中打开文件的选项),然后使用:n:prev(或:N)导航它们。然后,您可以使用:vs或进行分割:sp,并使用 Ctrl-W 命令来切换和重新组织窗口。

如果您发现自己想要一组单独的窗口,或者可能暂时全屏关注单个文件,同时保留以前的窗口设置,以便随时返回,请使用选项卡。

您可能想阅读:help buffers(链接在这里),它详细介绍了所有这些概念。

答案3

我觉得理论上的答案很好,但实际上没有一个解决工作流程。

要使用分屏,

vim file1 (or just vim)

一旦进去

ctrl+w v --> vertical split
ctrl+w h --> horizontal split

打开一个新文件

:n file3

或在父目录中。

:n ../file4 

或打开多个文件

:n file1 file2 file3 ../file4

在它们之间切换

:n

正如前面的答案已经指出的,我们buffers在这里使用 vim。

相关内容