dots/scripts/Documents/Scripts/zsh/zsh-autocomplete/README.md
2022-04-03 01:02:38 +02:00

5.6 KiB

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.

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.