.. | ||
.clitest | ||
.github | ||
.img | ||
.vscode | ||
functions | ||
scripts | ||
.gitignore | ||
.zshrc | ||
LICENSE | ||
README.md | ||
run-tests.zsh | ||
zsh-autocomplete.plugin.zsh |
zsh-autocomplete
zsh-autocomplete
adds real-time type-ahead autocompletion to Zsh. Find as you type, then
press Tab to insert the top completion, ShiftTab to insert the
bottom one, or ↓/PgDn to select another completion.
Enjoy using this software? Become a sponsor!.
Other Features
Besides live autocompletion, zsh-autocomplete
comes with many other useful completion features.
Optimized completion config
Zsh's completion system is powerful, but hard to configure. So, zsh-autocomplete
does it for
you, while providing a manageable list of configuration
settings for changing the defaults.
Live history search
Press CtrlR or CtrlS to do live, multi-line history search.
History menu
Press ↑ (or Alt↑ or PgUp) to open a menu with the last 16 history items. If the command line is not empty, then the contents of the command line are used to perform a fuzzy history search.
Multi-selection
Press CtrlSpace in the completion menu or the history menu to insert more than one item.
Recent dirs completion
Works out of the box with zero configuration, but also supports zsh-z
, zoxide
, z.lua
,
rupa/z.sh
, autojump
and fasd
.
Key Bindings
On the command line:
Key(s) | Action | Widget |
---|---|---|
Tab | Accept top completion | complete-word |
ShiftTab | Accept bottom completion | complete-word |
CtrlSpace | Show additional completions | list-expand |
↓ | Cursor down (if able) or completion menu | down-line-or-select |
PgDn / Alt↓ | Completion menu (always) | menu-select |
↑ | Cursor up (if able) or history menu | up-line-or-search |
PgUp / Alt↑ | History menu (always) | history-search |
CtrlR | Live history search, newest to oldest | history-incremental-search-backward |
CtrlS | Live history search, oldest to newest | history-incremental-search-forward |
In the completion menu:
Key(s) | Action |
---|---|
↑ / ↓ / ← / → | Change selection |
Alt↑ | Backward one group |
Alt↓ | Forward one group |
PgUp / PgDn | Page up/down |
CtrlR | Full text search or previous search match |
CtrlS | Full text search or next search match |
CtrlSpace | Multi-select |
Tab | Accept selection |
ShiftTab | Accept bottom completion |
Enter | Accept command line |
most other keys | Accept selection, then perform usual action |
In the history menu:
Key(s) | Action |
---|---|
↑/↓ | Change selection |
CtrlSpace | Multi-select |
Tab | Accept selection |
Enter | Accept command line |
most other keys | Accept selection, then perform usual action |
Requirements
Recommended:
- Tested to work with Zsh 5.7 or newer.
Minimum:
- Should theoretically work with Zsh 5.4 or newer, but I'm unable to test that.
Installing & Updating
If you use Znap, simply add the following to your
.zshrc
file:
znap source marlonrichert/zsh-autocomplete
Then restart your shell.
To update, do
% znap pull
For configuration options, see the included .zshrc
file.
To uninstall, remove znap source marlonrichert/zsh-autocomplete
from your .zshrc
file, then run
% znap uninstall
Manual installation
- Clone the repo:
% cd ~/Git # ...or wherever you keep your Git repos/Zsh plugins % git clone --depth 1 -- https://github.com/marlonrichert/zsh-autocomplete.git
- Add at or near the top of your
.zshrc
file (before any calls tocompdef
):source ~/Git/zsh-autocomplete/zsh-autocomplete.plugin.zsh
- Remove any calls to
compinit
from your.zshrc
file. - If you're using Ubuntu, add to your
.zshenv
file:skip_global_compinit=1
Then restart your shell.
To update, do:
% git -C ~zsh-autocomplete pull
To uninstall, simply undo the installation steps above in reverse order:
- Restore the lines you deleted in step 3.
- Delete the line you added in step 2.
- Delete the repo you created in step 1. Finally, restart your shell.
Other Frameworks/Plugin Managers
To install with another Zsh framework or plugin manager, please refer to your framework's/plugin manager's documentation for instructions.
Troubleshooting
Try the steps in the bug report template.
Author
© 2020-2021 Marlon Richert
License
This project is licensed under the MIT License. See the LICENSE file for details.