a window to edit the file:
1. If a window displaying the selected file is present in the current tabpage
(starting with the window before the quickfix window), then that window is
used.
2. If the above step fails and if 'switchbuf' contains "usetab" and a window
displaying the selected file is present in any one of the tabpages
(starting with the first tabpage) then that window is used.
3. If the above step fails then a window in the current tabpage displaying a
buffer with 'buftype' not set (starting with the window before the quickfix
window) is used.
4. If the above step fails and if 'switchbuf' contains "uselast", then the
previously accessed window is used.
5. If the above step fails then the window before the quickfix window is used.
If there is no previous window, then the window after the quickfix window
is used.
6. If the above step fails, then a new horizontally split window above the
quickfix window is used.
*CTRL-W_<Enter>* *CTRL-W_<CR>*
You can use CTRL-W <Enter> to open a new window and jump to the error there.
When the quickfix window has been filled, two autocommand events are
triggered. First the 'filetype' option is set to "qf", which triggers the
FileType event (also see |qf.vim|). Then the BufReadPost event is triggered,
using "quickfix" for the buffer name. This can be used to perform some action
on the listed errors. Example: >
au BufReadPost quickfix setlocal modifiable
\ | silent exe 'g/^/s//\=line(".") .. " "/'
\ | setlocal nomodifiable
This prepends the line number to each line. Note the use of "\=" in the
substitute string of the ":s" command, which is used to evaluate an
expression.
The BufWinEnter event is also triggered, again using "quickfix" for the buffer
name.
Note: When adding to an existing quickfix list the autocommand are not
triggered.
Note: Making changes in the quickfix window has no effect on the list of
errors. 'modifiable' is off to avoid making changes. If you delete or insert
lines anyway, the relation between the text and the error number is messed up.
If you really want to do this, you could write the contents of the quickfix
window to a file and use ":cfile" to have it parsed and used as the new error
list.
*location-list-window*
The location list window displays the entries in a location list. When you
open a location list window, it is created below the current window and
displays the location list for the current window. The location list window
is similar to the quickfix window, except that you can have more than one
location list window open at a time. When you use a location list command in
this window, the displayed location list is used.
When you select a file from the location list window, the following steps are
used to find a window to edit the file:
1. If a non-quickfix window associated with the location list is present in
the current tabpage, then that window is used.
2. If the above step fails and if the file is already opened in another window
in the current tabpage, then that window is used.
3. If the above step fails and 'switchbuf' contains "usetab" and if the file
is opened in a window in any one of the tabpages, then that window is used.
4. If the above step fails then a window in the current tabpage showing a
buffer with 'buftype' not set is used.
5. If the above step fails, then the file is edited in a new window.
In all of the above cases, if the location list for the selected window is not
yet set, then it is set to the location list displayed in the location list
window.
*quickfix-window-ID*
You can use the |getqflist()| and |getloclist()| functions to obtain the
window ID of the quickfix window and location list window respectively (if
present). Examples: >
echo getqflist({'winid' : 1}).winid
echo getloclist(2, {'winid' : 1}).winid
<
*getqflist-examples*
The |getqflist()| and |getloclist()| functions can be used to get the various
attributes of a quickfix and