command prompter
Terrence Enger
tenger-P1ovA8G34VBEfu+5ix1nRw at public.gmane.org
Sat Oct 3 00:31:55 UTC 2009
On Fri, 2009-10-02 at 16:35 -0400, Christopher Browne wrote:
> On Fri, Oct 2, 2009 at 1:41 PM, Chris F.A. Johnson <chris-E7bvbYbpR6jSUeElwK9/Pw at public.gmane.org> wrote:
> > On Fri, 2 Oct 2009, Terrence Enger wrote:
> >
> >> Greetings,
> >>
> >> I am used, working on another platform, to having a tool which relieves
> >> of the need to remember command line parameters ... sort of an entry
> >> panel with brief prompts and hyperlinks to the applicable part of the
> >> man page.
> >>
> >> Is there such a tool for GNU/Linux? Nothing applicable jumped out at me
> >> from the first hundred results of a google search for linux command
> >> prompter.
> >>
> >> If this does not already exist, is there anybody else who thinks maybe
> >> it should? If anybody expresses an interest, I shall put together an
> >> example of what it might do for you.
> >
> > You could do it with bash's completion functions.
>
> The "granddaddy" of this is the zsh completion functionality...
>
> http://zsh.sourceforge.net/Doc/Release/zsh_19.html
>
> A significant example that I use is the completion functions for PostgreSQL...
>
> http://www.zsh.org/mla/users/2004/msg01002.html
>
> For instance, it encodes the arguments for the "psql" client thus:
>
> _psql () {
> local curcontext="$curcontext" state line expl
> typeset -A opt_args
>
> _arguments -C -s \
> "$_pgsql_common_opts[@]" \
> {-V,--version}'[display client version]' \
> {-a,--echo-all}'[print commands read]' \
> {-A,--no-align}'[unaligned output mode]' \
> {-c+,--command=}':execute SQL command:' \
> {-d+,--dbname=}':database to connect to:_pgsql_databases' \
> {-e,--echo-queries}'[display queries submitted]' \
> {-E,--echo-hidden}'[display hidden queries]' \
> {-f+,--file=}':SQL file to read:_files' \
> {-F+,--field-separator=}':field separator char:' \
> {-H,--html}'[HTML output]' \
> {-l,--list}'[list databases]' \
> {-o+,--output=}':query output:_files' \
> {-P+,--pset=}':set psql variable:' \
> {-q,--quiet}'[non verbose mode]' \
> {-R+,--record-separator=}':record separator char:' \
> {-s,--single-step}'[prompt before each query]' \
> {-S,--single-line}'[newline sends query]' \
> {-t,--tuples-only}'[dont display header/footer]' \
> {-T+,--table-attr=}':HTML table options:' \
> -u'[prompt for username/password]' \
> {-v+,--set=,--variable=}':set SQL variable:' \
> {-x,--expanded}'[one column per line]' \
> {-X,--no-psqlrc}'[dont read ~/.psqlrc]' \
> ':PostgreSQL database:_pgsql_databases' \
> ':PostgreSQL user:_pgsql_users'
> }
>
> As a result of the above, if you type...
>
> psql -[tab]
>
> it'll display (in a fairly attractive format) the list of possible
> completions of the option.
I can see that this encodes a lot of useful information. Do these
functions come with PostgreSQL, or zsh, or what?
Cheers,
Terry.
--
The Toronto Linux Users Group. Meetings: http://gtalug.org/
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists
More information about the Legacy
mailing list