man.vim: :Man! operates on buffer contents (#9139)

mandoc may not handle quoted MANPAGER arguments correctly. E.g. with
    export MANPAGER='nvim -u NORC -c "set ft=man"'
mandoc treats `"set` and `ft=man"'` as separate tokens.

To workaround that, provide :Man! so that MANPAGER can avoid quoting.

closes #9120
This commit is contained in:
Justin M. Keyes 2018-10-21 17:38:25 +02:00 committed by GitHub
parent b227a3c8d3
commit f895b47d3f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 5 deletions

View File

@ -512,7 +512,7 @@ View manpages in Nvim. Supports highlighting, completion, locales, and
navigation. Also see |find-manpage|.
To use Nvim as a manpager: >
export MANPAGER="nvim -c 'set ft=man' -"
export MANPAGER="nvim +Man!"
man.vim will always attempt to reuse the closest man window (above/left) but
otherwise create a split.
@ -522,13 +522,14 @@ The case sensitivity of completion is controlled by 'fileignorecase'.
Commands:
Man {name} Display the manpage for {name}.
Man {sect} {name} Display the manpage for {name} and section {sect}.
Man {name}({sect}) Alternate syntax which completes the section.
Man {name}({sect}) Same as above.
Man {sect} {name}({sect}) Used during completion to show the real section of
when the provided section is a prefix, e.g. 1m vs 1.
Man {path} Open the manpage specified by path. Prepend "./" if
page is in the current directory.
Man {path} Open the manpage at {path}. Prepend "./" if {path}
is relative to the current directory.
Man Open the manpage for the <cWORD> (man buffers)
or <cword> (non-man buffers) under the cursor.
Man! Display the current buffer contents as a manpage.
|:Man| accepts command modifiers. For example, to use a vertical split: >
:vertical Man printf

View File

@ -5,7 +5,9 @@ if exists('g:loaded_man')
endif
let g:loaded_man = 1
command! -bar -range=0 -complete=customlist,man#complete -nargs=* Man call man#open_page(v:count, v:count1, <q-mods>, <f-args>)
command! -bang -bar -range=0 -complete=customlist,man#complete -nargs=* Man
\ if <bang>0 | set ft=man |
\ else | call man#open_page(v:count, v:count1, <q-mods>, <f-args>) | endif
augroup man
autocmd!