Edit command specific tab-completions.
Syntax complete [-abcdefgjksuv] [-o comp-option] [-A action] [-G globpat] [-W wordlist] [-P prefix] [-S suffix] suffix] [-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.
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.
Key: -o comp-option The comp-option controls several aspects of the compspec's behavior beyond the simple generation of completions. comp-option can be one of: bashdefault Perform the rest of the default bash completions if the compspec generates no matches. default Use readline's default filename completion if the compspec generates no matches. dirnames Perform directory name completion if the compspec generates no matches. filenames Tell readline that the compspec generates filenames, so it can perform any filename-specific processing (like adding a slash to directory names or suppressing trailing spaces). Intended to be used with shell functions. nospace Tell readline not to append a space (the default) to words completed at the end of the line. plusdirs After any matches defined by the compspec are generated, directory name completion is attempted and any matches are added to the results of the other actions. -A action The action can be one of the following to generate a list of possible completions: alias Alias names. Can also be specified as -a. arrayvar Array variable names. binding Readline key binding names. builtin Names of shell builtin commands. Can also be specified as -b. command Command names. Can also be specified as -c. directory Directory names. Can also be specified as -d. disabled Names of disabled shell builtins. enabled Names of enabled shell builtins. export Names of exported shell variables. Can also be specified as -e. file File names. Can also be specified as -f. function Names of shell functions. group Group names. Can also be specified as -g. helptopic Help topics as accepted by the help builtin. hostname Hostnames, as taken from the file specified by the HOSTFILE shell variable. job Job names, if job control is active. Can also be specified as -j. keyword Shell reserved words. Can also be specified as -k. running Names of running jobs, if job control is active. service Service names. Can also be specified as -s. setopt Valid arguments for the -o option to the set builtin. shopt Shell option names as accepted by the shopt builtin. signal Signal names. stopped Names of stopped jobs, if job control is active. user User names. Can also be specified as -u. variable Names of all shell variables. Can 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 members of the resultant list which match the word being completed. -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 shell environment. When it finishes, the possible completions are retrieved from the value of the COMPREPLY array variable. -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. -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 -ris 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.
Standard bash Tab Completion:
Type part of a command (enough to uniquely identify the command) and press Tab once > completes the command.
Type part of a command (not enough to uniquely identify the command) and press Tab twice > list of commands.
$ le[TAB]
Type a command + part of a file/folder name (enough to uniquely identify the file) and press Tab once > completes the file or folder name.
Type a command + part of a file/folder name (not enough to uniquely identify the file) and press Tab twice > list of file/folder names.
$ less dem[TAB]
Type a command + part of a file name (enough to uniquely identify the file) and press Escape and / > completes the file name.
$ less demo[ESC + /]
Example
Using complete for the executable SS64 to 1) show only files not directories and 2) exclude any files that don't have an extension .dem from the tab-completion:
$ complete -f -X '!*.dem' SS64
$ SS64[TAB]
“A woman isn't complete without a man. But where do you find a man - a real man - these days?” - Lauren Bacall
Related macOS commands:
history - Command History