I know I can browse Vim help with
:help, but this opens a split. Sometimes, I just like to study documentation. How read documentation in a "full screen" mode?
The other answers have already answered your question, but for the sake of completeness:
If you just want to temporarily get a larger window for your help-viewing, you can use either or both of the
Ctrl-w _ and
Ctrl-w | mappings to maximise the help window as much as possible vertically or horizontally, respectively, but without closing your existing split windows.
When you subsequently close the help window with
Ctrl-w c or
:q, your window layout will be returned to exactly how it was before you opened the help window.
This is useful if you have a slightly more complicated window layout which you would like to preserve.
I often open a new vim instance in another workspace/screen just to pop open a help window so this article was enormously helpful to me.
Here Is a bit of VimScript that I just wrote that will open a
help page in a new tab, and automatically close a new/empty buffer if necessary. Hopefully it is useful to folks in the future. Thank y'all for your help!
" Help: Open a `help` page in a new tab, or replace the current buffer if it " is unnamed and empty. function! Help( query ) " Is the current buffer empty? let l:empty = line( '$' ) ==# 1 && getline( 1 ) ==# '' " Store the current tab number so we can close it later if need be. let l:tabnr = tabpagenr() let l:bufname = bufname( winbufnr( 0 ) ) try " Open the help page in a new tab. (or bail if it's not found) execute "tab help " . a:query " The help page opened successfully. Close the original tab if it's empty. if l:bufname ==# '' && l:empty execute "tabclose " . l:tabnr endif endtry endfunction command! -nargs=1 Help call Help( <f-args> )
I wrote a tiny plugin to do this a few years ago: vim-helptab. It opens help docs in their own tab when you type
:h .... To bypass it you can do
:he ... or
I found this on the vim.fandom.com website. It works by making a session before maximizing, then it reloads the previous session view.
Because I have lots of tabs, I had to add
(tabonly) before reloading the session, otherwise you end up with double the number of tabs.
nnoremap <a-m> :call MaximizeToggle()<CR> function! MaximizeToggle() if exists("s:maximize_session") exec "tabo" exec "source " . s:maximize_session call delete(s:maximize_session) unlet s:maximize_session let &hidden=s:maximize_hidden_save unlet s:maximize_hidden_save else let s:maximize_hidden_save = &hidden let s:maximize_session = tempname() set hidden exec "mksession! " . s:maximize_session only endif endfunction
However, when working with a lot of files, I found this 'reload session' method lagged a bit. Maybe someone can comment on how to reduce the lag.
I'm rarely use tabs, but if I make a
:only, (which is what I have done in the past), and then I switch to the file buffer to try what I learned, the
help buffer is gone, and I have to reopen it and re-navigate to the place where I was before to continue reading the help content.
After reading all the answers here, I find that for me :tab is the right solution. The biggest bonus is that I can swap back and forth (
gt) between the file buffer tab and the help tab without losing my place, at the cost of one line of terminal real estate.
And, to open help initially in a new tab:
:tab help xxyyzz