From dbcdd29139a88d038834f85d74027dcf01fa1afb Mon Sep 17 00:00:00 2001 From: Marco Hinz Date: Mon, 22 Jan 2018 16:49:35 +0100 Subject: man.vim: use correct offset in presence of modifier commands 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. --- runtime/autoload/man.vim | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'runtime/autoload/man.vim') diff --git a/runtime/autoload/man.vim b/runtime/autoload/man.vim index 00ce1c77d7..4d43a4582b 100644 --- a/runtime/autoload/man.vim +++ b/runtime/autoload/man.vim @@ -299,6 +299,12 @@ endfunction " see man#extract_sect_and_name_ref on why tolower(sect) function! man#complete(arg_lead, cmd_line, cursor_pos) abort let args = split(a:cmd_line) + let cmd_offset = index(args, 'Man') + if cmd_offset > 0 + " Prune all arguments up to :Man itself. Otherwise modifier commands like + " :tab, :vertical, etc. would lead to a wrong length. + let args = args[cmd_offset:] + endif let l = len(args) if l > 3 return -- cgit