vim 以全屏模式查看缓冲区

9lowa7mx  于 2023-01-02  发布在  其他
关注(0)|答案(1)|浏览(180)

我在Neovim中使用了带有多个分割窗口的缓冲区。有没有什么解决方案可以让我在全屏模式下打开一个缓冲区,然后再将其移回分割模式?

xzlaal3s

xzlaal3s1#

在你的问题中,“缓冲区”、“窗口”和你所说的“全屏模式”之间有点混淆。

  • “缓冲区”是Vim中与普通程序中的“文档”完全相同的东西,它可以隐藏或显示在一个或多个窗口中。
  • 窗口是一个缓冲区的视图。你总是至少有一个窗口显示一个缓冲区。
  • 一个“标签页”是窗口的集合。你总是至少有一个标签页,一个窗口显示一个缓冲区。

因此,假设您在一个选项卡页面中,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#
如果这是您需要经常做的事情,您可能希望创建自定义Map来简化该过程:

nnoremap <key> :tab split<CR>
nnoremap <otherkey> :tabnext#\|tabclose#<CR>

请参见:help :split:help :tab:help :tabnext:help :tabclose:help :tabonly

  • 或者你可以找一个第三方插件来抽象所有这些。

相关问题