Is there a way to recall the previous command in psql? Obviously, "up
arrow" or Ctrl-P using readline and the default readline bindings is
close, but it recalls the previous _line_ of input. That is not at all
the same thing in the case of a multiple line command, for example.
If there is no way at present, I think there should be. Using "up arrow"
is quite annoying when dealing with multiple line SQL statements.
Two issues:
- how to handle slash commands? Slash commands and SQL statements can be
intermixed:
neilc=# select 1 \timing
Timing is off.
neilc-# ; ?column?
---------- 1
(1 row)
So I'm not quite sure what the right behavior here is. We could always
just ignore slash commands (the command would "recall the previous SQL
statement") -- since few slash commands are multi-line, I don't think
that would be too bad.
- when a multiple-line command is recalled, how should it be presented
in the psql input buffer? Perhaps we could strip newlines from recalled
command text, so that the recalled command would fit on a single line.
That would mean the recalled command would look somewhat different than
how the user typed it, although of course the semantics of the query
should be the same. Any better ideas?
-Neil