2016-03-05 22:32 GMT+03:00 Matthew Desjardins <[email protected]>: > On Saturday, March 5, 2016 at 2:00:48 PM UTC-5, LCD 47 wrote: >> [...] >> Tangentially related again: since these latest versions have been >> pathogen slayers (like it or not, people are thinking about them that >> way :)), pathogen has one more useful feature, the :Helptags command. >> It runs :helptags in the directories in runtimepath. Perhaps add a >> :packhelptags[!] that does the same thing for packages (with the bang >> version forcing update of help for disabled plugins)? >> >> /lcd > > Well that's really easy to implement in vimscript, something like: > > for path in split(&packpath, ',')
Do not use `split(&packpath, ',')`, comma may be escaped. Better use either long regex (may be seen in pathogen sources) or `globpath(&packpath, '', 1, 1)`. > for doc in split(glob(path . '/pack/**/doc'), '\n') Again incorrect. `path` may contain special characters, so this should be `fnameescape(path)`. Resulting directories may contain newlines, so this should be `glob(fnameescape(path) . '/pack/**/doc', 0, 1)` without `split()` at all. &wildignore may contain anything, so this should be `glob(fnameescape(path) . '/pack/**/doc', 1, 1)`. `doc` may be a file, so this should be `glob(fnameescape(path) . '/pack/**/doc/', 1, 1)` `fnameescape()` [does not work correctly on Windows][1], so this should be `globpath(&packpath, 'pack/**/doc/', 1, 1)` in place of two nested cycles. > execute 'helptags' doc Resulting `doc` may contain special characters, so this should be `fnameescape(doc)`. I guess you now see why built-in solution is needed: I found *six* ways to break code that has only five lines. Solution should not necessary be a built-in command, but at least autoload function shipped with Vim, or you will see 100500 incorrect implementations scattered all over the internet if users will have to write this themselves. [1]: https://github.com/vim/vim/issues/541 > endfor > endfor > > -- > -- > You received this message from the "vim_use" maillist. > Do not top-post! Type your reply below the text you are replying to. > For more information, visit http://www.vim.org/maillist.php > > --- > You received this message because you are subscribed to the Google Groups > "vim_use" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. -- -- You received this message from the "vim_use" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_use" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
