Basically I need to create a quickfix buffer listing all lines that match a regex. What is the best way?
The global command may not be the best, but I think it should
You can also not use the global command and stick with what is built-in. Use the vimgrep command as below:
:vimgrep /pattern/ %
And then :copen or :cwindow
:copen
:cwindow
Use caddexpr:-
g/<pattern>/caddexpr expand("%") . ":" . line(".") . ":" . getline(".")