xo / usql

Universal command-line interface for SQL databases
MIT License
9.1k stars 353 forks source link

Improve query history navigation #320

Open jpy-git opened 2 years ago

jpy-git commented 2 years ago

Often when executing queries I'll need to revisit and tweak/correct a previous query that I've executed. In usql the up arrow walks back through the query history one line at a time rather than a query at a time.

This is awkward as I have to press up multiple times just to get the same query, made all the more difficult by the fact that the first line I add gets added back to the end of the history which adds an extra click. So in this example below I have to click up 25 times just to edit one line of this fairly small query.

usql: usql

psql on the other jumps back to the complete previous command with 1 up click and I can then navigate and update the query however I want and re-execute it very quickly.

psql: psql

It would be great if usql could be updated to match this behaviour as it would be a big boost in productivity with the tool.

How I would suggest it works is:

kenshaw commented 2 years ago

@jpy-git I too have issues with this, but I have not yet had the time to write a full/proper implementation of a readline prompt, and usql has been hindered from day one based on what's available. I'd like to get it done, but the issue is that a proper readline implementation that supports the functionality usql needs that overcomes this limitation, and, eg, would be compatible with libinput or some such, easily carries a scope 2 to 3 times as large as usql itself.

alejandrodnm commented 8 months ago

For what it's worth, if you want to fix the last query you can execute \e and open the full query in the $EDITOR