我经常查看Vim中的帮助文件,但有时我想全屏阅读一个帮助文件。由于:help命令在新窗口中打开帮助文件,并关闭旧窗口(如果除了帮助文件外只剩一个窗口),这个操作会关闭Vim,所以我找到的唯一方法是先打开帮助文件,然后在新标签页中重新打开它。
我想知道,是否有任何方法可以使 :help 命令(或其他命令)在同一窗口中打开帮助文件,但在一个新缓冲区中?
您可能在寻找:only
或CTRL-W o
(相同的命令)。这将使当前窗口成为屏幕上唯一的窗口。所有其他窗口都将关闭。
您还可以使用以下命令在垂直方向拆分帮助窗口:
:vert help {subject}
顺便提一句,:help
命令实际上是在新缓冲区中打开的,只是这个缓冲区是“未列出的”。要列出所有缓冲区,包括未列出的缓冲区:
:buffers!
如果我理解问题正确的话,你所需要做的就是将 help 命令和 only 命令链接起来:
:help <subject> | only
: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-^
前往备选项,例如。 它还将尊重您的窗口布局(分割窗口等),而不像其他答案那样。
C-^
正常工作,你需要在 :h <args
前面添加 keepalt
,像这样:command! -nargs=1 -complete=help H :enew | :set buftype=help | :keepalt h <args>
。 - Logan Reed您可以使用:tab help
在新标签页中获取帮助。这将提供全屏幕帮助。还可以查看:help :tab
。
Ctrl-W T
。 - Brady Trainor您可以使用:help
命令打开帮助窗口,接着按下Ctrl+W_将其最大化显示(但需要注意winminheight
选项)。
:help | only
打开一个新的选项卡,并在其中显示您想要的主题:
:tab help {subject}
:tab h {subject}
这里的Subject是任何有效的:help
参数。
要分割当前窗口:
:vert help {subject}
:vert h {subject}
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
运行得非常好!
:help | only
设为默认行为,您可以使用autocmd:autocmd FileType help wincmd o
vim.api.nvim_create_autocmd(
"FileType", {
pattern = {"help"},
command = "wincmd o",
}
)