如何在现有窗口中的新缓冲区中打开Vim中的帮助文件?

Mar*_*man 17 vim buffer window

我经常看看Vim中的帮助文件,但有时我想全屏阅读.由于:help命令在一个新窗口中打开它,并关闭旧窗口,如果它是帮助文件中唯一的一个,由于某种原因关闭了Vim,我发现这样做的唯一方法就是打开帮助文件,然后在新选项卡中重新打开它.

我想知道,有没有办法让:help命令(或其他命令)在同一个窗口中打开一个帮助文件,但是一个新的缓冲区?

Cur*_*son 24

您可能正在寻找:onlyCTRL-W o(相同的命令).这使得当前窗口成为屏幕上唯一的窗口.所有其他窗户都关闭了.

您还可以垂直拆分帮助窗口:

:vert help {subject}
Run Code Online (Sandbox Code Playgroud)

BTW,:help实际上是在新的缓冲区中打开,它只是"不公开".列出所有缓冲区,包括未列出的缓冲区:

:buffers!
Run Code Online (Sandbox Code Playgroud)


Sha*_*oke 17

如果我正确理解了这个问题,你需要做的就是用唯一的命令链接help命令:

:help <subject> | only


mAS*_*OUD 7

您可以打开一个新选项卡以获取帮助:tab help.这将为您提供全屏帮助.另外看看:help :tab.

  • 另一种选择是在新选项卡中的思考后打开当前窗口,`Ctrl-W T`. (2认同)

ece*_*ulm 7

:help通常会打开一个新窗口,除非活动窗口的缓冲区buftype已经是help.因此,要真正重用窗口,您必须在该窗口中打开一个新的空缓冲区:enew,更改为buftype,:set buftype=help然后发出:help <whatever>.

为方便起见,您可以在以下位置定义命令.vimrc:

command! -nargs=1 -complete=help H :enew | :set buftype=help | :h <args>
Run Code Online (Sandbox Code Playgroud)

然后:H {subject}从任何窗口使用.

使用此方法,您可以真正重用窗口,并允许您使用C-^例如转到备用窗口.与其他答案不同,它也会尊重您的窗口布局(分割窗口等).

  • 为了让 `C-^` 工作,你需要在 `:h &lt;args` 之前添加 `keepalt`,像这样: `command! -nargs=1 -complete=help H :enew | :set buftype=help | :keepalt h &lt;args&gt;` (2认同)