>> I'd expect TAB rather to iterate over multiple matches, >> i.e. like TAB in browsers go to the next match. Even in the *Completions* >> buffer TAB moves to the next completion. And in icomplete-mode >> the closest analogy to picking one result is 'C-j' >> (icomplete-force-complete-and-exit). > > If people like it, I'm totally fine with changing the binding to 'C-j'. I'm very sorry for beating this horse again, but after trying to use xref as a replacement of grep, typing 'C-x p g' pops up a grep-like buffer and due to habit of typing the same keys that are supported by grep-mode where among them is TAB bound to compilation-next-error to browse the results forward, but instead of going to the next match, it does the worst thing imaginable - kills the output buffer. Therefore, I propose this patch that binds TAB and S-TAB to command that behave like compilation-next-error and compilation-previous-error: