I started using 'rlwrap' some monthes ago like one of my colleague does.
One can find specific Oracle extension for databases 9i, 10g and 11g (keyword textfile) over here.
This will avoid you the need to create this .oracle_keywords file.
There is 'rman' keyword file in the link above.
I experimented a little and found some missing keywords which are:
MAXCORRUPTION PRIMARY NOCFAU VIRTUAL COMPRESSION FOREIGN
With these words added, 'rman' works like this:
$rlwrap -f ~/rman $ORACLE_HOME/bin/rman Recovery Manager: Release 11.2.0.3.0 - Production on Mon Dec 3 02:56:04 2012 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. RMAN> <-- Hit TAB Display all 211 possibilities? (y or n)
As you can guess, this completion is not context aware.
I found these missing words by creating a kind of 'cheat sheet' for rman with the script like below.
This sheet contains list of verbs and 1st operands.
I uploaded to here so one can create a coffee cup with a lot of esoteric words printed on :)
validWords() { sed -n 's/^RMAN-01009: syntax error: found "identifier": expecting one of: //p' \ | sed -r 's/double-quoted-string, single-quoted-string/Some String/;s/, /""/g;s/""//' } echo "Bogus" | rman | validWords > /tmp/rman.$$ for i in $(cat /tmp/rman.$$) do i=$(echo $i | tr -d '"') echo "#### $i ####" echo "$i Bogus" | rman | validWords done
One can find more keywords in the document here.