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.