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

6rqinv9w  于 2023-08-05  发布在  其他
关注(0)|答案(9)|浏览(129)

我经常在Vim中查看帮助文件,但有时我想全屏阅读。由于:help命令会在一个新窗口中打开它,而关闭旧窗口,如果它是帮助文件之外的唯一窗口,出于某种原因会关闭Vim,我发现这样做的唯一方法是打开帮助文件,然后在新选项卡中重新打开它。
我想知道,有没有办法使:help命令(或另一个命令)在同一个窗口中打开一个帮助文件,但一个新的缓冲区?

rdlzhqv9

rdlzhqv91#

您可能正在查找:onlyCTRL-W o(相同的命令)。这使当前窗口成为屏幕上唯一的窗口。所有其他窗口都已关闭。
也可以使用以下命令垂直拆分帮助窗口:

:vert help {subject}

字符串
顺便说一句,:help实际上是在一个新的缓冲区中打开的,它只是“未列出”。要列出所有缓冲区(包括未列出的缓冲区),请执行以下操作:

:buffers!

ukqbszuj

ukqbszuj2#

如果我理解正确的话,你需要做的就是用 only 命令链接 help 命令调用:

:help <subject> | only

字符串

vqlkdk9b

vqlkdk9b3#

:help通常会打开一个新窗口 * 除非 * 活动窗口的缓冲区buftype已经是help。因此,要真正重用一个窗口,必须在该窗口中用:enew打开一个新的空缓冲区,用:set buftype=help更改buftype,然后发出:help <whatever>
为了方便起见,您可以在.vimrc中定义一个命令来执行此操作:

command! -nargs=1 -complete=help H :enew | :set buftype=help | :h <args>

字符串
然后从任何窗口使用:H {subject}
使用这种方法,您可以真正重用窗口,例如,允许您使用C-^转到备用窗口。它也会尊重你的窗口布局(拆分窗口等)不像其他答案。

mqxuamgl

mqxuamgl4#

您可以打开一个新选项卡以获取有关:tab help的帮助。这将为您提供全屏帮助。再看看:help :tab

k2arahey

k2arahey5#

您可以使用:help打开帮助窗口,然后Ctrl+W_使该窗口全屏显示(主要参见winminheight选项)。

66bbxpm5

66bbxpm56#

要打开包含所需主题的全尺寸新选项卡:

:tab help {subject}
:tab h {subject}

字符串
Subject是任何有效的:help参数。
要拆分当前窗口,请执行以下操作:

:vert help {subject}
:vert h {subject}

knsnq2tg

knsnq2tg7#

@Shamaoke的回答的一个更通用的变体是在完整窗口中打开主帮助菜单。

:help | only

字符串

wswtfjt7

wswtfjt78#

我用大写的H写了一个自定义命令,如下所示(工作原理与:h完全相同,只是它使用整个窗口):

command! -nargs=1 -complete=help H call HelpFullScreen( <f-args> )

function! HelpFullScreen( topic )
    exe "h " . a:topic
    wincmd j
    try
        clo
    catch /^Vim(\a\+):E444:/ " can't close last window
    endtry
endfunction

字符串
像一个魅力!

rhfm7lfc

rhfm7lfc9#

要使:help | only成为默认行为,可以使用autocmd:

autocmd FileType help wincmd o

字符串
或者在lua中:

vim.api.nvim_create_autocmd(
    "FileType", {
        pattern = {"help"},
        command = "wincmd o",
    }
)

相关问题