aboutsummaryrefslogtreecommitdiff
path: root/runtime/autoload/man.vim
Commit message (Collapse)AuthorAge
* man.vim: lowercase title when invoked as $MANPAGERJustin M. Keyes2018-10-26
| | | | | | | | man#init_pager() guesses the ref by the heading, which is usually uppercase, so we don't know the correct casing. But lowercase is more common, so use that for the buffer name instead of uppercase. ref #9156
* man.vim: avoid duplicate buffers, E95Justin M. Keyes2018-10-25
| | | | | | | | | | | | | | | | | | | | Before this commit, man#init_pager() always tries to scrape the manpage name and set the buffer name. That's much less important than avoiding duplicate buffers and E95. And it doesn't seem to be necessary, usually. Steps to reproduce: $ export MANPAGER="nvim -c 'set ft=man' -" $ man sleep :Man sleep Error detected while processing function man#init_pager: line 15: E95: Buffer with this name already exists :ls! 1 h- "man://SLEEP(1)" line 4 2 %a- "man://sleep(1)" line 1
* man.vim: set $MANWIDTH=999Justin M. Keyes2018-09-30
| | | | | | | | On some systems, mandoc disallows $MANWIDTH greater than 1000. E.g. FreeBSD: https://github.com/freebsd/freebsd/blob/b7d613ae8a2fc1530d33aff53a1a678d284bfeec/contrib/mandoc/manpath.c#L312 closes #9065
* man.vim: Start at the top #9023Justin M. Keyes2018-09-27
| | | | fixes #9057
* man.vim: Fix very long justified lines #9023Justin M. Keyes2018-09-21
| | | | | | | | | | | When nroff justifies a line, it fills the line with whitespace to meet $MANWIDTH. With $MANWIDTH=9999, that of course results in nonsense (and behaves poorly with 'cursorline' option). To work around that, instead of trying to hard-justify the lines, just replace the mega-whitespace with a fixed size of 10 spaces. Perhaps N/Vim needs a "soft justify" feature?
* man.vim: Ignore $MANWIDTH, use soft wrap #9023Doron Behar2018-09-21
| | | | | fix #9017 close #9023
* man.vim: guard against reload (#8940)dm1try2018-09-01
| | | | | | Some plugins attempt to reload autoloaded scripts. Use a guard to prevent this. fix #8939
* man.vim: fix for mandoc (#8698)Brayden Banks2018-07-08
| | | | | When giving a section, the first candidate selection was not performed. followup/fixup #8341
* man.vim: s:get_path(): trim newline in all casesJustin M. Keyes2018-05-10
| | | | ref #8372
* man.vim: get() first item if -w returns multiple paths #8372Jon Bernard2018-05-10
| | | | | | | | | OpenBSD's man returns all candidates when searching with -w instead of the first one it finds. So this patch takes the first one if multiple entries are found. closes #8372 closes #8341
* man.vim: use correct offset in presence of modifier commandsMarco Hinz2018-01-22
| | | | | | | | | | | The argument expansion for :Man depends on the number of arguments given to it starting at the command itself. But user completion functions always provide the entire command-line which can include modifier commands like :tab, :vert, etc. leading to a wrong number of arguments. Prune all arguments up to :Man. Fixes #7872.
* Merge #7623 'man.vim: highlight bold, underlined text'Justin M. Keyes2018-01-09
|\
| * Address PR commentsGabriel Holodak2017-12-27
| |
| * Add support for escape sequencesGabriel Holodak2017-12-27
| |
| * Switch to processing in LuaGabriel Holodak2017-12-27
| |
| * Highlight backspaced charactersGabriel Holodak2017-12-27
| |
* | man.vim: always keep the alternate buffer (#7784)Anmol Sethi2017-12-29
|/ | | Closes #7772
* man.vim: feature-test section (-s) flag #6815raichoo2017-05-26
| | | | | Different implementations of `man` might be using different flags for sections.
* man.vim: check for -l flag #6766raichoo2017-05-19
|
* man.vim: Fix filename argument in mandoc #6693Matthew Wynn2017-05-08
| | | | | | | Use the -l flag to open a man file. TODO: Does not work on SunOS. Fixes #6683
* help, man.vim: "outline" (TOC) feature #5169Tommy Allen2017-05-01
|
* man.vim: call s:error in man#read_page (#6362)Anmol Sethi2017-03-25
| | | | | The comment is incorrect, s:error does need to be called. I thought the call was unnecessary because it didn't show any message for me but I had shortmess+=F which was hiding the message.
* man.vim: use 'eventignore' instead of :noautocmd #6149Anmol Sethi2017-02-27
| | | | | | We only need to ignore BufReadCmd (from runtime/plugin/man.vim). Closes #6144
* man.vim: more robust s:verify_exists #6043Anmol Sethi2017-02-04
| | | | | | | Closes #6039 Also: close the window if we could not get the page from man but only if we opened it ourselves.
* man.vim: get page after opening split (#6032)Anmol Sethi2017-01-31
| | | This will ensure that $MANWIDTH is correctly set.
* man.vim: remove terminal escape characters (#6033)Anmol Sethi2017-01-31
| | | This will make man.vim work on nixOS.
* man.vim: Avoid empty argument when MANWIDTH is set. (#5882)Marcus Fritzsch2017-01-06
|
* man.vim: remove newline from man errors (#5852)Anmol Sethi2017-01-01
|
* man.vim: revert "completion now respects 'wildignorecase'" (#5839)Anmol Sethi2016-12-27
| | | | Instead, a note was added to `:h man.vim` on how 'fileignorecase' controls the case sensitivity of completion.
* man.vim, provider.vim: Avoid shell syntax. #5734ooora2016-12-27
| | | | | | - Improves compatibility with shell=tcsh. - man.vim: split read_page into get_page, put_page. Do not split the window until we know there is going to be output.
* man.vim: properly handle manpage names with spacesAnmol Sethi2016-12-27
|
* man.vim: completion now respects 'wildignorecase'Anmol Sethi2016-12-27
|
* man.vim: when completing a fpage, always show sectionAnmol Sethi2016-12-26
|
* man.vim: do not assume ftplugin is sourced before syntaxAnmol Sethi2016-11-19
| | | | Fixes #5574
* man.vim: no guarantee that the first line contains anything usefulAnmol Sethi2016-11-18
| | | | Fixes #5628
* man.vim: prevent bell in ':wincmd w' when only one window (#5328)Anmol Sethi2016-09-11
|
* [RFC] man.vim: remove <Plug> mappings (#5290)Anmol Sethi2016-09-04
| | | | | | - :Man with no arguments opens the manapage for the <cWORD> (man buffers) or <cword> (non-man buffers). - remove now irrelevent comment about -P flag
* man.vim: Avoid hard redraw.Justin M. Keyes2016-09-03
| | | | Use system() instead of :read to avoid a hard redraw.
* man.vim #5249Anmol Sethi2016-09-03
| | | | | | | | | | | - fix synopsis highlighting in other locales. Cannot always rely on the first line for the section in some locales; instead, use the file path and explicitly set b:man_sect to the actual section. - eliminate separate s:man_args function - simplify logic: do not reuse buffer content - introduce b:man_default_sects Fixes #5233 - introduce <Plug>(man_vsplit), <Plug>(man_tab) - simplify regexps
* Merge #5210 'vim-patch:7.4.1898 + :Man modifiers support'.Justin M. Keyes2016-08-25
|\
| * man.vim: if reusing a buffer, do not use noautocmdAnmol Sethi2016-08-24
| | | | | | | | | | The commit that added support for modifiers regressed #5168 causing #5172. This commit fixes it again.
| * man.vim: slight refactoringAnmol Sethi2016-08-24
| | | | | | | | Addresses problem one in #5240
| * man.vim: set window local options when reusing bufferAnmol Sethi2016-08-24
| | | | | | | | | | | | This is necessary incase the buffer was previously opened in a different tab, in which the window options there do not carry over. It is not explicitly documented in ':help local-options' but that is how it works.
| * man.vim: support for command modifiersAnmol Sethi2016-08-24
|/ | | | Closes #5235
* man.vim: handle empty identifier from mapping (#5187)Anmol Sethi2016-08-08
| | | | | Regression from #5168. Also changed the Man command's nargs to '+' so that man#open_page does not need to handle 0 arguments, because that will never occur.
* man.vim: handle 'gdefault' (#5182)Anmol Sethi2016-08-07
| | | Fixes #5181
* man.vim: refactoring and autocmd fixAnmol Sethi2016-08-07
| | | | | | - man#open_page_command and man#open_page_mapping are now a single function - New autocmd to fix #5172
* man.vim: default K mappingAnmol Sethi2016-08-06
| | | | - Also some small improvements in other parts.
* man.vim: doc, UX tweaksJustin M. Keyes2016-08-04
| | | | s:error: Convention is to highlight the entire message, so stick to that.
* man.vim: rewriteAnmol Sethi2016-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Smart autocomplete. It's automatically sorted, filtered for duplicates and even formats the candidates based on what is needed. For example, `:Man 1 printf<TAB>` will show the pages that are in section 1m as 'page(sect)' to let you know they are in a more specific section. - Instead of trying to unset $MANPAGER we use the -P flag to set the pager to cat - Always use the section arg '-s', it makes the code much simpler (see comment in s:man-args). - A manpage name starting with '-' is invalid. It's fine for sections because of the use of '-s'. - The tagstack is an actual stack now, makes it much simpler. - By using v:count and v:count1, the plugin can explicitly check whether the user set a count, instead of relying on a default value (0) that is actually a real manpage section. - Extraction of a manpage reference is much more simple. No giant long complicated regexes. Now, the plugin lets `man` handle the actual validation. We merely extract the section and page. Syntax regexes are a bit more specific though to prevent highlighting everything. - Multilingual support in the syntax file. Removed the cruft that was only relevent to vim. Also simplified and improved many of the regexes. - Using shellescape when sending the page and sect as arguments - In general, the code flow is much more obvious. - man#get_page has been split up into smaller functions with explicit responsibilties - ':help' behavior in opening splits and manpages - Comments explaining anything that needs explaining and isn't immediately obvious. - If a manpage has already been loaded but if it were to reloaded at the current width which is the same as the width at which it was loaded at previously, it is not reloaded. - Use substitute to remove the backspaced instead of `col -b`, as the latter doesn't work with other languages. - Open paths to manpages - It uses cWORD instead of cword to get the manpage under the cursor, this helps with files that do not have (,) in iskeyword. It also means the plugin does not set iskeyword locally anymore. - <Plug>(Man) mapping for easy remapping - Switched to single quotes wherever possible. - Updated docs in $VIMRUNTIME/doc/filetype.txt (still need to update user-manual) - Always call tolower on section name. See comment in s:extract_page_and_sect_fpage - Formatting/consistency cleanup - Automatically map q to ':q<CR>' when invoked as $MANPAGER - It also fully supports being used as $MANPAGER. Setting the name and stuff automatically. - Split up the setlocals into multiple lines for easier readability - Better detection of errors by redirecting stderr to /dev/null. If an error occured, stdout will be empty. - Functions return [sect, page] not [page, sect]. Makes more sense with how man takes the arguments as sect and then page. - Pretty prints errors on a single line. - If no section is given, automatically finds the correct section for the buffer name. It also gets the correct page. See the comment in s:get_page - If $MANWIDTH is not set, do not assign directly to $MANWIDTH because then $MANWIDTH will always stay set to the same value as we only use winwidth(0) when the global $MANWIDTH is empty. Instead we set it locally for the command. - Maintainer notes on all files.