Awesome Open Source
Awesome Open Source

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.

file-search

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-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.

history menu

Multi-selection

Press CtrlSpace in the completion menu or the history menu to insert more than one item.

multi-select

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.

recent dirs

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

  1. 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
    
  2. Add at or near the top of your .zshrc file (before any calls to compdef):
    source ~/Git/zsh-autocomplete/zsh-autocomplete.plugin.zsh
    
  3. Remove any calls to compinit from your .zshrc file.
  4. 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:

  1. Restore the lines you deleted in step 3.
  2. Delete the line you added in step 2.
  3. 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.


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Shell (230,362
Zsh (3,152
Asynchronous (1,264
Autocomplete (828
Zsh Plugin (346
Autocompletion (207
Completion (197
Non Blocking (172
Related Projects