Productivity
简体中文 | English | Github | Gitee
[!Tip]
PowerShell: A cross-platform PowerShell. Start it by runningpwsh/pwsh.exe.Windows PowerShell: A PowerShell which is built-in on Windows system. Start it by runningpowershell/powershell.exe.- They can both use
PSCompletions, butPowerShellis more recommended.
PowerShell for better and simpler use completions.en-US,zh-CN,...) freely.If PSCompletions is helpful to you, please consider giving it a star ⭐.
Start PowerShell.
Install module:
-Scope CurrentUser unless you're sure you'll always start PowerShell with administrator permissions.
Install-Module PSCompletions -Scope CurrentUser
Install-Module PSCompletions -Scope CurrentUser -Repository PSGallery -Force
Import module:
Import-Module PSCompletions
$PROFILE to make it permanent by running the following command.
echo "Import-Module PSCompletions" >> $PROFILE
[!Warning]
- When using
PSCompletions, don't useSet-PSReadLineKeyHandler -Key <key> -Function MenuComplete.- Because
PSCompletionsuses it, if it's used again, it will overwrite the settings inPSCompletions, causing thePSCompletionscompletion menu to not work properly.- You should set it by the configuration in
PSCompletions.- For detail configuration, see About the completion trigger key.
+ Import-Module PSCompletions - Set-PSReadLineKeyHandler -Key <key> -Function MenuComplete
PowerShell.Uninstall-Module PSCompletions
[!Tip]
- Available Completions.
- If it doesn't include the completion you want, you can submit an issue.
- You can also combined with argc-completions.
git as an example.psc add gitgit, press Space and Tab key to get command completion.psc, you just need to enter psc, press Space and Tab key, and you will get all usages of psc by reading the completion tip.
PSCompletions uses the Tab key by default.psc menu config trigger_key <key>.[!Warning]
- When using
PSCompletions, don't useSet-PSReadLineKeyHandler -Key <key> -Function MenuComplete.- Because
PSCompletionsuses it, if it's used again, it will overwrite the settings inPSCompletions, causing thePSCompletionscompletion menu to not work properly.+ Import-Module PSCompletions - Set-PSReadLineKeyHandler -Key <key> -Function MenuComplete
PSCompletions module is imported after starting PowerShell, it will start a background job to check for the completion status of the remote repository.PSCompletions will show the latest status of the completions in the next time.Optional Completions: some command completions that like -*, such as --global in git config --global.git as an example, if you want to enter git config user.name --global xxx, you should use --global completion first, and then use user.name, and then enter the name xxx .In addition to the built-in completion menu of PowerShell, PSCompletions module also provides a more powerful completion menu.
psc menu config enable_menu 1 (Default: 1)The module's completion menu is based on PS-GuiCompletion realization idea, thanks!
Available Windows environment:
PowerShell Windows PowerShell Windows PowerShell, the border style of the completion menu cannot be customized.
PowerShell.Some keys in the module's completion menu.
Apply the selected completion item: Enter / Space
Tab when there's only one completion.Delete filter characters: Backspace
Exit the completion menu: Esc / Ctrl + c
Backspace when there're no characters in the filter area.Select completion item:
| Select previous item | Select next item |
|---|---|
Up | Down |
Left | Right |
Shift + Tab | Tab |
Ctrl + u | Ctrl + d |
Ctrl + p | Ctrl + n |
All configurations of it, you can trigger completion by running psc menu, then learn about them by the completion tip.
1 means true and 0 means false. (It applies to all configurations of PSCompletions)Setting: psc menu config enable_menu_enhance 1 (Default: 1)
Now, PSCompletions has two completion implementations.
Register-ArgumentCompleter
psc menu config enable_menu_enhance 0.psc add.Set-PSReadLineKeyHandler
enable_menu and enable_menu_enhance both set to 1.Register-ArgumentCompleter for all completions, which theoretically makes loading faster.TabExpansion2 to manage completions globally, not limited to those added by psc add.
cd/.\/..\/~\/... in PowerShell.Get-*/Set-*/New-*/... in PowerShell.Register-ArgumentCompleter[!Tip]
- Due to future changes in Windows Terminal, 😄🤔😎 will not be displayed properly in the completion menu, so these three default special symbols will change.
- Related issue: https://github.com/microsoft/terminal/issues/18242
- The changes are as follows:
😄=>»🤔=>?😎=>!
Special symbols after the completion item are used to let you know in advance if completions are available before you press the Tab key.
psc add.psc menu symbol SpaceTab ""psc menu symbol OptionTab ""psc menu symbol WriteSpaceTab ""»,?,! : If there are multiple, you can choose the effect of one of them.
Normal Completions: Sub-commands. Such as add/pull/push/commit/... in git.Optional Completions: Optional parameters. Such as -g/-u/... in git add.General Optional Completions: General optional parameters that can be used with any command. Such as --help/... in git.Current Completions: Current completion items in completion menu.» : It means that after you apply it, you can press Space and Tab key to continue to get completions.
psc menu symbol SpaceTab <symbol>? : It means that after you apply it (Optional Completions or General Optional Completions), you can press Space and Tab key to continue to get Current Completions.
psc menu symbol OptionTab <symbol>! : It means that after you apply it (Optional Completions or General Optional Completions), you can press Space and enter a string, then press Space and Tab key to continue to get completions.
"(quote) or '(single quote) to wrap it. e.g. "test content"», it means that there's some preset completions, you can press Space and Tab key to continue to get them without entering a string.psc menu symbol WriteSpaceTab <symbol>Tab key after entering a part.=, if there's completion definition, you can directly press the Tab key to get the completions.The completion tip is only a helper, you can also disable the tip by running psc menu config enable_tip 0
psc menu config enable_tip 1.psc.
psc completion psc enable_tip 0General structure of the completion tip: Usage + Description + Example
U: install|add [-g|-u] [options] <app>
This is a description of the command.
E: install xxx
add -g xxx
Example Analysis:
U:
installadd<app>
app is a simple summary of the parameters.-g -u
[options]: Some options.E:Global language: Default to the language of current system.
psc config language.psc config language zh-CN.Completion language: The language set for the specified completion.
psc completion git language en-US.Available language: In the completion config.json file, there is a language attribute whose value is a list of available languages.Completion language,use it.Global language.Available language.Available language. (It's usually en-US)git for example, when entering git add, pressing the Space and Tab keys, path completion will not be triggered, only completion provided by the module will be triggered.^(?:\.\.?|~)?(?:[/\\]).*../ or .\ and press Tab key to get path completion for the subdirectory or file.../ or ..\ and press Tab key to get path completion for the parent directory or file./ or \ and press Tab key to get path completion for the sibling directory.~/ / ../../ ...git add ./ and then press Tab key to get the path completion.If PSCompletions is helpful to you, please consider giving it a star ⭐.

Completion :Click to view to the official website of the command. Sort by first letter(0-9,a-z).
abc(a), it means that you need to download it by psc add abc, but by default a is used instead of abc to trigger the completion.Language: Supported Languages, and Progress.
config.json (usually en-US).Description: Command Description.| Completion | Language | Description |
|---|---|---|
| 7z | en-US zh-CN(100%) | The command line cli of 7-Zip |
| arch | en-US zh-CN(100%) | Display machine architecture. Completion was written based on uutils/coreutils. |
| b2sum | en-US zh-CN(13.33%) | Compute and check message digests. Completion was written based on uutils/coreutils. |
| b3sum | en-US zh-CN(13.33%) | Compute and check message digests. Completion was written based on uutils/coreutils. |
| base32 | en-US zh-CN(28.57%) | Encode/decode data and print to standard output. Completion was written based on uutils/coreutils. |
| base64 | en-US zh-CN(28.57%) | Encode/decode data and print to standard output. Completion was written based on uutils/coreutils. |
| basename | en-US zh-CN(28.57%) | Print NAME with any leading directory components removed. Completion was written based on uutils/coreutils. |
| basenc | en-US zh-CN(13.33%) | Encode/decode data and print to standard output. Completion was written based on uutils/coreutils. |
| bun | en-US zh-CN(100%) | Bun - JavaScript all-in-one toolkit. |
| cargo | en-US zh-CN(100%) | cargo - Rust package manager. |
| chfs | en-US zh-CN(100%) | CuteHttpFileServer - A free, HTTP protocol file sharing server cross-platform file sharing server. |
| choco | en-US zh-CN(100%) | choco(chocolatey) - Software Manager. |
| cksum | en-US zh-CN(20%) | Print CRC and size for each file. Completion was written based on uutils/coreutils. |
| comm | en-US zh-CN(20%) | Compare two sorted files line by line. Completion was written based on uutils/coreutils. |
| conda | en-US zh-CN(100%) | conda - binary package and environment manager. |
| csplit | en-US zh-CN(18.18%) | Split a file into sections determined by context lines. Completion was written based on uutils/coreutils. |
| cut | en-US zh-CN(15.38%) | Print specified byte or field columns from each line of stdin or the input files. Completion was written based on uutils/coreutils. |
| date | en-US zh-CN(14.29%) | Print or set the system date and time. Completion was written based on uutils/coreutils. |
| dd | en-US zh-CN(100%) | Copy, and optionally convert, a file system resource. Completion was written based on uutils/coreutils. |
| deno | en-US zh-CN(100%) | Deno - A secure runtime for JavaScript and TypeScript. |
| df | en-US zh-CN(5.71%) | Show information about the file system on which each FILE resides, or all file systems by default. Completion was written based on uutils/coreutils. |
| dircolors | en-US zh-CN(25%) | Output commands to set the LS_COLORS environment variable. Completion was written based on uutils/coreutils. |
| dirname | en-US zh-CN(40%) | Strip last component from file name. Completion was written based on uutils/coreutils. |
| docker | en-US zh-CN(100%) | docker - Container Application Development. |
| du | en-US zh-CN(2.17%) | Estimate file space usage. Completion was written based on uutils/coreutils. |
| env | en-US zh-CN(16.67%) | Set each NAME to VALUE in the environment and run COMMAND. Completion was written based on uutils/coreutils. |
| factor | en-US zh-CN(20%) | Print the prime factors of the given NUMBER(s). Completion was written based on uutils/coreutils. |
| fmt | en-US zh-CN(11.76%) | Reformat paragraphs from input files (or stdin) to stdout. Completion was written based on uutils/coreutils. |
| fnm | en-US zh-CN(8.33%) | Fast and simple Node.js version manager, built in Rust. |
| fold | en-US zh-CN(28.57%) | Writes each file (or standard input if no files are given) to standard output whilst breaking long lines. Completion was written based on uutils/coreutils. |
| git | en-US zh-CN(100%) | Git - Version control system. |
| hashsum | en-US zh-CN(6.45%) | Compute and check message digests. Completion was written based on uutils/coreutils. |
| head | en-US zh-CN(22.22%) | Print the first 10 lines of each 'FILE' to standard output. Completion was written based on uutils/coreutils. |
| join | en-US zh-CN(11.11%) | For each pair of input lines with identical join fields, write a line to standard output. The default join field is the first, delimited by blanks. Completion was written based on uutils/coreutils. |
| kubectl | en-US zh-CN(100%) | Kubernetes, also known as K8s, is an open source system for automating deployment, scaling, and management of containerized applications. kubectl is its command-line tool. |
| link | en-US zh-CN(100%) | Call the link function to create a link named FILE2 to an existing FILE1. Completion was written based on uutils/coreutils. |
| ln | en-US zh-CN(11.76%) | Make links between files. Completion was written based on uutils/coreutils. |
| md5sum | en-US zh-CN(14.29%) | Compute and check message digests. Completion was written based on uutils/coreutils. |
| mise | en-US zh-CN(3.39%) | mise is a task runner and dev tools manager for any language. |
| mktemp | en-US zh-CN(20%) | Create a temporary file or directory. Completion was written based on uutils/coreutils. |
| ngrok | en-US zh-CN(100%) | ngrok - Unified Ingress Platform for developers. Connect localhost to the internet for testing applications and APIs. |
| nl | en-US zh-CN(6.67%) | Number lines of files. Completion was written based on uutils/coreutils. |
| npm | en-US zh-CN(100%) | npm - package manager. |
| nproc | en-US zh-CN(33.33%) | Print the number of cores available to the current process. Completion was written based on uutils/coreutils. |
| nrm | en-US zh-CN(100%) | nrm - npm registry manager. |
| numfmt | en-US zh-CN(7.69%) | Convert numbers from/to human-readable strings. Completion was written based on uutils/coreutils. |
| nvm | en-US zh-CN(100%) | nvm - Node Version Manager. |
| od | en-US zh-CN(4.65%) | Dump files in octal and other formats. Completion was written based on uutils/coreutils. |
| oh-my-posh | en-US zh-CN(7.41%) | oh-my-posh is a cross platform tool to render your prompt. |
| paste | en-US zh-CN(28.57%) | Write lines consisting of the sequentially corresponding lines from each 'FILE', separated by 'TAB's, to standard output. Completion was written based on uutils/coreutils. |
| pdm | en-US zh-CN(0.31%) | A modern Python package and dependency manager supporting the latest PEP standards. |
| pip | en-US zh-CN(99.42%) | pip - Python Package Manager. |
| pnpm | en-US zh-CN(100%) | pnpm - Package Manager. |
| powershell | en-US zh-CN(100%) | Windows PowerShell CLI. (powershell.exe) |
| psc | en-US zh-CN(97.59%) | PSCompletions module's completion tips. It can only be updated, not removed. If removed, it will be automatically added again. |
| pwsh | en-US zh-CN(100%) | PowerShell CLI. (pwsh.exe) |
| python | en-US zh-CN(100%) | python - command-line. |
| scoop | en-US zh-CN(100%) | Scoop - Software Manager. |
| sfsu | en-US zh-CN(6.67%) | Scoop utilities that can replace the slowest parts of Scoop, and run anywhere from 30-100 times faster. |
| volta | en-US zh-CN(100%) | volta - Accessible JavaScript Tool Manager. |
| winget | en-US zh-CN(100%) | WinGet - Windows package manager. |
| wsh | en-US zh-CN(3.45%) | wsh is a small utility that lets you do cool things with Wave Terminal, right from the command line. |
| wsl | en-US zh-CN(100%) | WSL - Windows Subsystem for Linux. |
| wt | en-US zh-CN(100%) | Windows Terminal command line. You can use it to start a terminal. |
| yarn | en-US zh-CN(100%) | yarn - package manager. |
| ... | ... | ... |