HiveBrain v1.2.0
Get Started
← Back to all entries
patternsqlMajor

Is there a psql equivalent of bash's reverse-search-history?

Submitted by: @import:stackexchange-dba··
0
Viewed 0 times
equivalentreversesearchhistorypsqltherebash

Problem

I am very fond of bash's reverse-search-history (C-r) (command-line feature):


Search backward starting at the current line and moving ‘up’ through the history as necessary. This is an incremental search.

When I hit control-r in bash, I get the following:

(reverse-i-search)`':


And I am able to type characters of previously executed commands, honing in on what I am looking for. If I make a mistake, I can enter control-h to erase a character (equivalent of backspace).

This command-line functionality makes it extremely easy to refer to previously executed commands. I am wondering if such a capability exists for psql. I find it extremely inefficient to rely on just control-p and control-n.

For what it's worth, I am using PostgreSQL 9.3.1 on x86_64-apple-darwin13.0.0, compiled by Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn), 64-bit - obtained via Postgres.app.

Solution

A conversation about this on GitHub led to an interim "quick fix" solution:


open ~/.editrc and add:


bind "^R" em-inc-search-prev

Apparently the bigger issue is that PostgresApp uses libedit instead of libreadline. And supposedly libedit lacks some command-line features of libreadline, so until PostgresApp is compiled against libreadline, just use the above quick fix.

Context

StackExchange Database Administrators Q#63453, answer score: 23

Revisions (0)

No revisions yet.