我使用过 VS Code,并且喜欢将窗口拖放到右侧以创建垂直分割的方式。
有时我用vim打开很多文件( vim -p *py
)。在浏览选项卡时,我觉得这个特定的选项卡应该是垂直分割的。
忘记拖放部分,如何使当前选项卡垂直分割? (我已经splitright
定了)
编辑:
正如建议的麻雀1029,:vs sb#
有效,但保持前一个缓冲区完好无损,我们可以以某种方式删除它吗?也许某些功能绑定到击键?
答案1
如果你读过本文,它将帮助您理解vim 中buffers
、windows
、 和之间的区别。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。