aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-10-21 17:38:25 +0200
committerGitHub <noreply@github.com>2018-10-21 17:38:25 +0200
commitf895b47d3f935b74ed982b06a73a7265cf06e960 (patch)
treeecc261a14953d45aa8f0585de3fd01409d4ebd25
parentb227a3c8d35b28a8bfcbbdd593deb6524a37a77f (diff)
downloadrneovim-f895b47d3f935b74ed982b06a73a7265cf06e960.tar.gz
rneovim-f895b47d3f935b74ed982b06a73a7265cf06e960.tar.bz2
rneovim-f895b47d3f935b74ed982b06a73a7265cf06e960.zip
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
-rw-r--r--runtime/doc/filetype.txt9
-rw-r--r--runtime/plugin/man.vim4
2 files changed, 8 insertions, 5 deletions
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index 302370b4cc..5047e7c23e 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -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
diff --git a/runtime/plugin/man.vim b/runtime/plugin/man.vim
index 7bccd4a3b9..e18a5528bb 100644
--- a/runtime/plugin/man.vim
+++ b/runtime/plugin/man.vim
@@ -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!