Skip to main content
2 of 8
added 132 characters in body
user9433424
  • 6.2k
  • 2
  • 21
  • 30

How to automatically open the location list window after using the :lhelpgrep command?

I have the following autocmds to automatically open the quickfix window or the location list window after executing a quickfix command.

augroup quickfix_window
    autocmd!
    autocmd QuickFixCmdPost [^l]* nested cwindow | setlocal nowrap | redraw!
    autocmd QuickFixCmdPost l* nested lwindow | setlocal nowrap | redraw!
augroup END

It seems to work except with the :lhelpgrep command.

If I type :lvim /autocmd/ % to look for all the words matching autocmd inside the current buffer, the location list is populated with all the matches and the location list window is automatically opened (provided there are matches).

But If I type :lh autocmd to look for the word autocmd inside the help files, even though the command is run and the location list is populated with results, the location list window is not opened, I have to do it manually with :lwindow.

According to :h QuickFixCmdPre, The pattern is matched against the command being run..

Here the command name is :lh which begins with the l character, so it should match the pattern l* in the 2nd autocmd.

If I replace :lwindow with :lopen to ask the location list window to be opened even if the location list is empty, the previous command :lh autocmd raises the following error:

Error detected while processing QuickFixCmdPost Auto commands for "l*":
E776: No location list

It seems, :lh populates the location list after the QuickFixCmdPost event, instead of before like I expected.
Is there another way to make the location list window automatically opened after :lh has been run?

user9433424
  • 6.2k
  • 2
  • 21
  • 30