Well I'll be damned.
One quick request: the behavior of next_result is such that if the cursor is on a result line, next_result will go to the result after it. It looks like this might be because after next_result runs it selects part of the line to make it clear what happened, and so next_result would need to go to the result after the one with the selection on it. Could it be made a bit smarter, though? E.g. if the selection's empty, or if the selection is anything other than the hardbol through the colon after the number, etc, go to the current line's result?
Thanks! I was just impressed.