Skip to content

zap-zsh/zap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6d8c83a · May 23, 2024
May 17, 2023
Feb 22, 2023
Jan 16, 2023
May 13, 2023
Jan 13, 2023
Jan 16, 2023
Apr 9, 2023
Jan 13, 2023
Oct 24, 2022
May 23, 2024
Jun 23, 2023
Apr 9, 2024

Repository files navigation

zap_logo


Latest release Last commit License Stars Issues Repo Size Patreon donate button follow on Twitter

⚡ Zap is a minimal zsh plugin manager

Prerequisites

  • ZSH
  • a nerd font (optional)

To get your nerd font check out getNF project or visit NerdFonts site.

Install

zsh <(curl -s https://raw.githubusercontent.com/zap-zsh/zap/master/install.zsh) --branch release-v1

Tip

If you wish to keep your current .zshrc file, you may add the -k or --keep argument when executing the install script.

Zap works on Linux, macOS, Windows (within WSL), Android (within Termux)

Example usage

Add the following to your .zshrc

# Example install of plugins
plug "zap-zsh/supercharge"
plug "zsh-users/zsh-autosuggestions"

# Example install of a plugin pinned to specifc commit or branch, just pass the git reference
plug "zsh-users/zsh-syntax-highlighting" "122dc46"

# Example install of a theme
plug "zap-zsh/zap-prompt"

# Example install of a zsh completion
plug "esc/conda-zsh-completion"

You can also use Zap to install custom plugins or source custom files present on your local filesystem. A file descriptor which points to a directory is treated as a plugin, versus a regular file. For example:

# Example install of a local plugin
plug "$HOME/plugins/my-custom-prompt"

# Example sourcing of local files
plug "$HOME/.config/zsh/aliases.zsh"
plug "$HOME/.config/zsh/exports.zsh"

# Example install all local plugin in a folder (must be an absolute path anding with *)
plug "$HOME/plugins/*"

By default Zap when installing a plugin will clone a GitHub repository using a HTTPS web URL, if you require to be able to install from a private GitHub or from a different git server (for example GitLab) you can provide a different URL prefix to be used. For example:

# Example globally setting the prefix for Zap to git clone using an SSH key
export ZAP_GIT_PREFIX="git@github.com:"
plug "zap-zsh/private-repo"

# Example git clone using GitLab for a single plugin
ZAP_GIT_PREFIX="https://gitlab.com/" plug "user/repo"

It is possible to call plug in any interactive shell session to source a file or to download and source a plugin for that particular session.

⚠️ If you call plug outside your .zshrc file, the plugin you sourced will not be sourced at the next shell reload.

Commands

Zap provided commands for updating and cleaning up plugins

  • To update plugins or Zap:

    zap update self # Update the Zap installation
    zap update plugins # Update all your plugins but not Zap
    zap update all # Update both the Zap installation and its plugins
  • To list all plugins you are using:

    zap list
  • To remove plugins you are no longer using:

    zap clean

Uninstall

To uninstall Zap, when currently active, execute the following:

rm -rf "$ZAP_DIR"

When not currently active, execute the following:

rm -rf "${XDG_DATA_HOME:-$HOME/.local/share}/zap"

Notes

For sourcing local files use $HOME instead of ~ when giving a full path to the file.


zap thumbnail

Socials

Github Logo Discord Logo Twitter Logo Reddit Logo

Thanks to all contributors