pshcomplete man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

PSHCOMPLETE(1)	      User Contributed Perl Documentation	PSHCOMPLETE(1)

NAME
       pshcomplete - TAB completion in Perl Shell

SYNOPSIS
       TAB completion strategies in Perl Shell

DESCRIPTION
       psh supports built-in completion support as well as a largely bash
       compatible user-programmable completion.

       Whenever a user presses the TAB key, psh first checks wether we're
       trying to complete a command for which there's a user-programmed
       completion.  Please see below for further information about this
       process.

       If there are no user-programmed completions, following default
       completion strategies are checked in the specified order:

       Perl Hash Keys
	   If the current expression looks like an attempt to enter the key of
	   a Perl Hash ( "$var{$keypart" or "$var-"{$keypart> ), psh will
	   examine the Perl symbol table to try to complete the entered key.

       Perl Methods
	   Afterwards psh will try to complete method calls which look like
	   "$obj-"methodpart>.

       Perl Variables
	   An attempt is then made to complete any perl variable names
	   starting with one the most usual context signifiers ( "@$%&" or $#
	   ).

       Executables
	   If the user is currently working on the first word of the line or a
	   similar syntactic position (like the first word after a pipe sign),
	   psh attempts to find an executable in the current path matching the
	   expression.

       Filenames
	   If no completions could be generated so far, psh will attempt to
	   complete the word as a filename.

       Built-ins
	   Afterwards, psh will check wether the command to execute is a
	   builtin command. If yes, the builtin command is asked for a list of
	   completions.	 The list of completions supplied by the builtin may
	   or may not replace the list of so far gathered possible
	   completions, depending on the builtin.

PROGRAMMABLE COMPLETIONS
   DESCRIPTION
       This "Psh::PCompletion" module provides the programmable completion
       function almost compatible with the one of bash-2.04 and/or later.  The
       following document is based on the texinfo file of bash-2.04-beta5.

   Programmable Completion
       When word completion is attempted for an argument to a command for
       which a completion specification (a COMPSPEC) has been defined using
       the complete builtin (See "Programmable Completion Builtins".), the
       programmable completion facilities are invoked.

       First, the command name is identified.  If a compspec has been defined
       for that command, the compspec is used to generate the list of possible
       completions for the word.  If the command word is a full pathname, a
       compspec for the full pathname is searched for first.  If no compspec
       is found for the full pathname, an attempt is made to find a compspec
       for the portion following the final slash.

       Once a compspec has been found, it is used to generate the list of
       matching words.	If a compspec is not found, the default Psh completion
       described above (Where is it described?) is performed.

       First, the actions specified by the compspec are used.  Only matches
       which are prefixed by the word being completed are returned.  When the
       -f or -d option is used for filename or directory name completion, the
       shell variable FIGNORE is used to filter the matches.  See "ENVIRONMENT
       VARIABLES" for a description of FIGNORE.

       Any completions specified by a filename expansion pattern to the -G
       option are generated next.  The words generated by the pattern need not
       match the word being completed.	The GLOBIGNORE shell variable is not
       used to filter the matches, but the FIGNORE shell variable is used.

       Next, the string specified as the argument to the -W option is
       considered.  The string is first split using the characters in the IFS
       special variable as delimiters.	Shell quoting is honored.  Each word
       is then expanded using brace expansion, tilde expansion, parameter and
       variable expansion, command substitution, arithmetic expansion, and
       pathname expansion, as described above (Where is it described?).	 The
       results are split using the rules described above (Where is it
       described?).  No filtering against the word being completed is
       performed.

       After these matches have been generated, any shell function or command
       specified with the -F and -C options is invoked.	 When the function or
       command is invoked, the first argument is the word being completed, the
       second argument is the current command line, the third argument is the
       index of the current cursor position relative to the beginning of the
       current command line, and the fourth argument is the name of the
       command whose arguments are being completed.  If the current cursor
       position is at the end of the current command, the value of the third
       argument is equal to the length of the second argument string.

       No filtering of the generated completions against the word being
       completed is performed; the function or command has complete freedom in
       generating the matches.

       Any function specified with -F is invoked first.	 The function may use
       any of the shell facilities, including the compgen builtin described
       below (See "Programmable Completion Builtins".), to generate the
       matches.	 It returns a array including the possible completions.	 For
       example;

	       sub _foo_func {
		   my ($cur, $line, $start, $cmd) = @_;
		   ...
		   return @possible_completions;
	       }
	       complete -F _foo_func bar

       Next, any command specified with the -C option is invoked in an
       environment equivalent to command substitution.	It should print a list
       of completions, one per line, to the standard output.  Backslash may be
       used to escape a newline, if necessary.

       After all of the possible completions are generated, any filter
       specified with the -X option is applied to the list.  The filter is a
       pattern as used for pathname expansion; a "&" in the pattern is
       replaced with the text of the word being completed.  A literal "&" may
       be escaped with a backslash; the backslash is removed before attempting
       a match.	 Any completion that matches the pattern will be removed from
       the list.  A leading "!" negates the pattern; in this case any
       completion not matching the pattern will be removed.

       Finally, any prefix and suffix specified with the -P and -S options are
       added to each member of the completion list, and the result is returned
       to the Readline completion code as the list of possible completions.

       If a compspec is found, whatever it generates is returned to the
       completion code as the full set of possible completions.	 The default
       Bash completions are not attempted, and the Readline default of
       filename completion is disabled.

   Programmable Completion Builtins
       A builtin commands complete and a builtin Perl function compgen are
       available to manipulate the programmable completion facilities.

       compgen
		   compgen [OPTION] [WORD]

	   Generate possible completion matches for WORD according to the
	   OPTIONs, which may be any option accepted by the complete builtin
	   with the exception of -p and -r, and write the matches to the
	   standard output.  When using the -F or -C options, the various
	   shell variables set by the programmable completion facilities,
	   while available, will not have useful values.

	   The matches will be generated in the same way as if the
	   programmable completion code had generated them directly from a
	   completion specification with the same flags.  If WORD is
	   specified, only those completions matching WORD will be displayed.

	   The return value is true unless an invalid option is supplied, or
	   no matches were generated.

       complete
		   complete [-abcdefjkvu] [-A ACTION] [-G GLOBPAT] [-W WORDLIST]
			    [-P PREFIX] [-S SUFFIX] [-X FILTERPAT] [-x FILTERPAT]
			    [-F FUNCTION] [-C COMMAND] NAME [NAME ...]
		   complete -pr [NAME ...]

	   Specify how arguments to each NAME should be completed.  If the -p
	   option is supplied, or if no options are supplied, existing
	   completion specifications are printed in a way that allows them to
	   be reused as input.	The -r option removes a completion
	   specification for each NAME, or, if no NAMEs are supplied, all
	   completion specifications.

	   The process of applying these completion specifications when word
	   completion is attempted is described above (See Programmable
	   Completion.).

	   Other options, if specified, have the following meanings.  The
	   arguments to the -G, -W, and -X options (and, if necessary, the -P
	   and -S options) should be quoted to protect them from expansion
	   before the complete builtin is invoked.

	   -A ACTION
	       The ACTION may be one of the following to generate a list of
	       possible completions:

	       alias
		   Alias names.	 May also be specified as -a.

	       arrayvar
		   Names of Perl array variable names.

	       binding
		   Readline key binding names.

	       builtin
		   Names of shell builtin commands.  May also be specified as
		   -b.

	       command
		   Command names.  May also be specified as -c.

	       directory
		   Directory names.  May also be specified as -d.

	       disabled
		   Names of disabled shell builtins (not implemented yet.).

	       enabled
		   Names of enabled shell builtins (not implemented yet.).

	       export
		   Names of exported shell variables.  May also be specified
		   as -e.

	       file
		   File names.	May also be specified as -f.

	       function
		   Names of Perl functions.

	       hashvar
		   Names of Perl hash variable names.

	       helptopic
		   Help topics as accepted by the `help' builtin.

	       hostname
		   Hostnames.

	       job Job names, if job control is active.	 May also be specified
		   as -j.

	       keyword
		   Shell reserved words.  May also be specified as -k.

	       running
		   Names of running jobs, if job control is active.

	       setopt
		   Valid arguments for the -o option to the set builtin (not
		   implemented yet.).

	       shopt
		   Shell option names as accepted by the shopt builtin (not
		   implemented yet.).

	       signal
		   Signal names.

	       stopped
		   Names of stopped jobs, if job control is active.

	       user
		   User names.	May also be specified as -u.

	       variable
		   Names of all Perl variables.	 May also be specified as -v.

	   -G GLOBPAT
	       The filename expansion pattern GLOBPAT is expanded to generate
	       the possible completions.

	   -W WORDLIST
	       The WORDLIST is split using the characters in the IFS special
	       variable as delimiters, and each resultant word is expanded.
	       The possible completions are the resultant list.

	   -C COMMAND
	       COMMAND is executed in a subshell environment, and its output
	       is used as the possible completions.

	   -F FUNCTION
	       The shell function FUNCTION is executed in the current Perl
	       shell environment.  When it finishes, the possible completions
	       are retrieved from the array which the function returns.

	   -X FILTERPAT
	       FILTERPAT is a pattern as used for filename expansion.  It is
	       applied to the list of possible completions generated by the
	       preceding options and arguments, and each completion matching
	       FILTERPAT is removed from the list.  A leading "!" in FILTERPAT
	       negates the pattern; in this case, any completion not matching
	       FILTERPAT is removed.

	   -x FILTERPAT
	       Similar to the -X option above, except it is applied to only
	       filenames not to directory names etc.

	   -P PREFIX
	       PREFIX is added at the beginning of each possible completion
	       after all other options have been applied.

	   -S SUFFIX
	       SUFFIX is appended to each possible completion after all other
	       options have been applied.

	   The return value is true unless an invalid option is supplied, an
	   option other than -p or -r is supplied without a NAME argument, an
	   attempt is made to remove a completion specification for a NAME for
	   which no specification exists, or an error occurs adding a
	   completion specification.

   AUTHOR
       Hiroo Hayashi, hiroo.hayashi@computer.org

   SEE ALSO
       info manual of bash-2.04 and/or later

   EXAMPLES
       complete_example in the Psh distribution shows you many examples of the
       usage of programmable completion.

	       source complete-examples

COPYRIGHT
       Copyright (C) 1999-2003 Gregor N. Purdy. All rights reserved.  This
       script is free software. It may be copied or modified according to the
       same terms as Perl itself.

perl v5.20.2			  2007-07-06			PSHCOMPLETE(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net