Once I figured out the syntax, I wrote a shell script per database I need to connect to and then forgot about it. :-)

I also used a login.sql script that is slightly modified from what Tom Kyte suggests:
\nset termout off\ndefine _editor=vi\nset serveroutput on size 1000000 format wrapped\n\ncolumn object_name format a30\ncolumn segment_name format a30\ncolumn file_name format a40\ncolumn name format a30\ncolumn file_name format a30\ncolumn what format a40 word_wrapped\ncolumn plan_plus_exp format a70\n\nset trimspool on\nset long 5000\nset linesize 80\nset pagesize 9999\n\ndefine gname=idle\ncolumn global_name new_value gname\nselect lower(user) || '@' || global_name global_name\nfrom global_name;\nset sqlprompt '&gname> '\nset termout on\n


Cheers,
Ben