我在Neovim中使用多个拆分窗口的缓冲区。是否有任何解决方案,我可以在全屏模式下打开缓冲区,并在此之后将其移回分割模式?
你的问题中"缓冲区"、"窗口"和你所说的"全屏模式"之间有一点混淆。
- 一个"buffer"是Vim的"文档"的精确等效物;在更正常的程序中。它可以隐藏或显示在一个或多个窗口。
- 一个"window"是进入缓冲区的视图。你总是至少有一个窗口显示一个缓冲区。
- 标签页"是窗口的集合。您总是至少有一个选项卡页,其中一个窗口显示一个缓冲区。
那么,假设您在一个选项卡页面中,n
窗口按照您想要的方式布局…
-
按下
<C-w>T
键,将当前窗口移动到新的选项卡页。由于窗口是新选项卡页面中唯一的窗口,因此您可以获得"全屏模式",但Vim不记得以前的布局,因此没有简单的方法来重新创建它。参见
:help ctrl-w_T
。 -
可以下发
:tab sp
命令。当您执行:split
时,当前窗口被分成两个,每个窗口显示相同的缓冲区。如果加上:tab
,则会创建一个新的选项卡页面,并在该选项卡页面中打开新窗口。因此,:tab split
可以理解为"将当前窗口拆分为一个新的选项卡页面"。与
<C-w>T
相比的优点是,原始标签页中的原始布局没有改变,因此不需要"向后移动"任何内容。如果你想回到原来的标签页和它的布局,只需切换到原来的标签页与:tabn#
和关闭多余的标签页与:tabc#
::tab sp :tabn# or `g<tab>` :tabc#
请注意,如果您只从一个选项卡页面开始,
:tabn#
/:tabc#
舞蹈可以减少到:tabo#
。如果这是您经常需要做的事情,您可能需要创建自定义映射来简化过程:
nnoremap <key> :tab split<CR> nnoremap <otherkey> :tabnext#|tabclose#<CR>
参见
:help :split
、:help :tab
、:help :tabnext
、:help :tabclose
、:help :tabonly
。 -
或者你可以找一个第三方插件来抽象这一切。