Provided by: zplug_2.4.2-2_all
NAME
zplug - A next-generation plugin manager for zsh
SYNOPSIS
zplug ["username/reponame"[, tag:"value"[,...]]] [<command> [<options>] [<package>]] The word ´package´ refers to the string in the format: "username/reponame".
DESCRIPTION
zplug is a super-fast next-generation plugin manager for zsh. zplug can manage everything including: zsh plugins, UNIX commands, Gist files, GitHub Releases, local plugins and so on. Unlike antigen, zplug requires no ZSH plugin file (*.plugin.zsh). It’s such a fantabulous piece of software. • Can manage everything • Zsh plugins/UNIX commands on GitHub, Gitlab and Bitbucket • Gist file (gist.github.com) • Third-party sources e.g., oh-my-zsh and prezto plugins/themes • Binary artifacts on GitHub Releases • Local plugins • etc. (you can add your own sources!) • Super-fast parallel installation/update • Support for lazy-loading • Branch/tag/commit support • Post-update, post-load hooks • Dependencies between packages • Unlike antigen, no ZSH plugin file (*.plugin.zsh) required • Interactive interface (fzf, peco, zaw, and so on) • Cache mechanism for reducing the startup time
OPTIONS
--help Print the synopsis and a list of all available commands. --version Print zplug’s version. --log Show the error log.
COMMANDS
check [--verbose] [package] Check whether there is at least one item that’s not installed. If package (username/reponame) is given, check if package is installed. If the --verbose option is given, print extra debugging information. clean [--force] [--select] [package] Remove unused packages that are in $ZPLUG_HOME/repos after showing a yes/no prompt. If package is given, uninstall that particular package. If --force option is given, suppress the prompt and uninstall package. If the --select option is given, by using the filter specified in $ZPLUG_FILTER, interactively select the package you want to uninstall. clear Remove the cache file. install [package] Install package. list [--verbose] [--select] [package] List installed packages. --select do the same as what’s described above. load [--verbose] Load packages. All packages registered with as:plugin are sourced into the current zsh process, and its parent directory is added to $fpath. In addition, all packages with as:command are linked to $ZPLUG_HOME/bin and the bin directory is added to $PATH. --verbose does the same as what’s described above. info <package> Show the information such as source URL and tag values of the package. status [--select] Fetch the newest version of the installed packages by zplug. --select does the same as what’s described above. update [--select] [--force] [package] Update package. If no package is given, updates all registered packages. --select does the same as what’s described above.
TAGS
Values truthy and falsy mean any of "true, yes, on, 1" and "false, no, off, 0", respectively. Table 1. zplug list of available tags ┌───────────┬──────────────────────────┬────────────────────────────────────┬────────────────────────┐ │Tag │ Description │ Value (default) │ Example │ ├───────────┼──────────────────────────┼────────────────────────────────────┼────────────────────────┤ │ │ │ │ │ │as │ Whether to register │ plugin,command,theme │ as:command │ │ │ the package as │ (plugin) │ │ │ │ commands or as │ │ │ │ │ plugins │ │ │ ├───────────┼──────────────────────────┼────────────────────────────────────┼────────────────────────┤ │ │ │ │ │ │use │ Specify the pattern │ glob (use:"*.zsh") │ use:bin,use:"*.sh", │ │ │ of the files to │ │ use:"*darwin*" │ │ │ source (for plugin) │ │ │ │ │ or the relative │ │ │ │ │ path from the │ │ │ │ │ package root of the │ │ │ │ │ file to add to │ │ │ │ │ $PATH (for command) │ │ │ │ │ / Useful, for │ │ │ │ │ example, with │ │ │ │ │ from:gh-r you can │ │ │ │ │ specify │ │ │ │ │ use:"*darwin*{amd,386}*" │ │ │ │ │ and so on. If you │ │ │ │ │ want to use │ │ │ │ │ extended glob, see │ │ │ │ │ later section for │ │ │ │ │ setting the zstyle. │ │ │ ├───────────┼──────────────────────────┼────────────────────────────────────┼────────────────────────┤ │ │ │ │ │ │from │ Specify the service from │ github,gitlab,bitbucket,gh-r,gist, │ from:gh-r │ │ │ which you install │ oh-my-zsh,prezto,local │ │ │ │ │ (github) │ │ ├───────────┼──────────────────────────┼────────────────────────────────────┼────────────────────────┤ │ │ │ │ │ │at │ Branch, tag, or commit │ revision (master) │ at:v1.5.6 │ │ │ to use │ │ │ ├───────────┼──────────────────────────┼────────────────────────────────────┼────────────────────────┤ │ │ │ │ │ │rename-to │ Specify the filename you │ filename (-) │ rename-to:fzf │ │ │ want to rename to (only │ │ │ │ │ valid with as:command) │ │ │ ├───────────┼──────────────────────────┼────────────────────────────────────┼────────────────────────┤ │ │ │ │ │ │dir │ Installation directory │ READ ONLY │ dir:/path/to/user/repo │ │ │ which is managed by │ │ │ │ │ zplug │ │ │ ├───────────┼──────────────────────────┼────────────────────────────────────┼────────────────────────┤ │ │ │ │ │ │if │ The conditions under │ commands (-) │ if:"[ -d ~/.zsh ]" │ │ │ which to install and/or │ │ │ │ │ use the package │ │ │ ├───────────┼──────────────────────────┼────────────────────────────────────┼────────────────────────┤ │ │ │ │ │ │hook-build │ Commands to run after │ commands (-) │ hook-build:"make │ │ │ installation/update │ │ install" │ ├───────────┼──────────────────────────┼────────────────────────────────────┼────────────────────────┤ │ │ │ │ │ │hook-load │ Commands to run after │ commands (-) │ hook-load:"echo │ │ │ loading │ │ ´Boo!´" │ ├───────────┼──────────────────────────┼────────────────────────────────────┼────────────────────────┤ │ │ │ │ │ │frozen │ Do not update unless │ truthy,falsy (no) │ frozen:true │ │ │ explicitly specified │ │ │ ├───────────┼──────────────────────────┼────────────────────────────────────┼────────────────────────┤ │ │ │ │ │ │on │ Dependencies │ package (-) │ on:user/repo │ ├───────────┼──────────────────────────┼────────────────────────────────────┼────────────────────────┤ │ │ │ │ │ │lazy │ Lazy-load │ truthy,falsy (no) │ lazy:true │ ├───────────┼──────────────────────────┼────────────────────────────────────┼────────────────────────┤ │ │ │ │ │ │depth │ The number of commits to │ Any non-negative integer │ depth:10 │ │ │ include in the cloned │ │ │ │ │ repository. 0 means the │ │ │ │ │ whole history. │ │ │ ├───────────┼──────────────────────────┼────────────────────────────────────┼────────────────────────┤ │ │ │ │ │ │ │ defer │ Defers the loading of a package. │ 0..3 (0) │ │ │ │ If the value is 2 or above, zplug │ │ │ │ │ will source the plugin after │ │ │ │ │ compinit (see also #26) │ │ ├───────────┼──────────────────────────┼────────────────────────────────────┼────────────────────────┤ │ │ │ │ │ │defer:2 │ ignore │ Similar to use, but specify │ glob (-) │ │ │ │ exception pattern of files that │ │ │ │ │ you don’t want to load (see also │ │ │ │ │ #56) │ │ └───────────┴──────────────────────────┴────────────────────────────────────┴────────────────────────┘ You can register packages for zplug from the command line. If you use zplug on the command line, you can take advantage of the command line completions. When using this method, zplug writes out the package settings to $ZPLUG_LOADFILE. If you launch a new zsh process, zplug load command will automatically use this file. Note that you can also use $ZPLUG_LOADFILE to isolate your zplug package listing from your .zshrc.
ENVIRONMENT VARIABLES
Various zplug commands use the following environment variables: ZPLUG_HOME Defaults to ~/.zplug. zplug will store/load plugins in this directory. The directory structure is below. $ZPLUG_HOME |-- bin | `-- some_command -> ../repos/username_A/reponame1/some_command `-- repos |-- username_A | |-- reponame1 | | |-- README.md | | `-- some_command | `-- reponame2 | |-- README.md | `-- some_plugin.zsh `-- username_B `-- reponame1 If you specify as:command when registering the package, zplug will recognize the plugin as a command and create a symbolic link of the same name (if you want to rename it, use rename-to) in $ZPLUG_HOME/bin. Because zplug adds $ZPLUG_HOME/bin to the $PATH, you can run that command from anywhere just like any other commands. ZPLUG_THREADS The maximum number of threads zplug should use when installing/updating. The default value is 16. ZPLUG_PROTOCOL Defaults to HTTPS. Valid options for $ZPLUG_PROTOCOL are HTTPS or SSH. Unless you have a specific reason, you should use the HTTPS protocol. For more information, see also Which remote URL should I use? - GitHub Help ZPLUG_FILTER Defaults to fzf-tmux:fzf:peco:percol:zaw. When --select option is specified in a subcommand, starting from the first element of the colon-separated list, whatever filter found will be used by zplug as the interactive filter. The ZPLUG_FILTER also accepts arguments (e.g. fzf-tmux -d "10%":/path/to/peco:my peco). ZPLUG_LOADFILE Defaults to $ZPLUG_HOME/packages.zsh. This file is used to add packages from zplug on the command-line. This is a useful feature when you want to isolate your zplug configurations from your .zshrc. Note that you don’t need to add packages from the command line to use this feature: you can manually edit this file, and it’ll work just fine! ZPLUG_USE_CACHE Defaults to true. If this variable is true, zplug uses a cache file to speed up the loading process. The cache file is located at $ZPLUG_CACHE_DIR ($ZPLUG_HOME/.cache by default). If you want to clear the cache, please run zplug clear or do the following: $ ZPLUG_USE_CACHE=false zplug load ZPLUG_CACHE_DIR Defaults to $ZPLUG_HOME/.cache. Specifies where to save the cache. For example, you can set this to $HOME/.cache/zplug to follow XDG Base Directory Specification ZPLUG_REPOS Defaults to $ZPLUG_HOME/repos. You can change where the repositories are cloned in case you want to manage them separately. ZPLUG_SUDO_PASSWORD Defaults to ´´. You can set sudo password for zplug’s hook-build tag. However, this variable shoud not be managed in dotfiles and so on. # your .zshrc source ~/.zshrc_secret zplug "some/command", hook-build:"make && sudo make install"
USING ZSTYLE
You can use zstyle to change the default values for each tag. The format is: zstyle ":zplug:tag" tag_name new_default_value. For example, if you have a lot of commands and not so many plugins, (i.e. if you find yourself specifying as:command often), you can do: zstyle ":zplug:tag" as command. You can also specify what options to enable in sub shells. Sub shells are used when expanding glob expressions. If you want to use the extended_glob for example, you can do: zstyle ":zplug:config:setopt" only_subshell extended_glob. If you set :zplug:config:setopt same_curshell to a truthy value (i.e. true, 1, yes), zplug will enable the options enabled at the point of sourcing zplug (i.e. at the point of source $ZPLUG_HOME/init.zsh).
EXTERNAL COMMANDS
zplug, like git(1), supports external commands. These are executable scripts that reside somewhere in the PATH, named zplug-cmdname, which can be invoked with zplug cmdname. This allows you to create your own commands without modifying zplug’s internals. Instructions for creating your own commands can be found in the docs: https://github.com/zplug/zplug/blob/master/doc/zplug/External-Commands.md Check out the sample zplug-env external command for an example.
CONFIGURATION
Add a zplug section to your .zshrc (or $ZPLUG_LOADFILE): 1. Register packages with the zplug command (zplug "username/reponame") 2. zplug load to source the plugins and add its commands to your $PATH source ~/.zplug/zplug # Make sure you use double quotes zplug "zsh-users/zsh-history-substring-search" # Can manage a plugin as a command # And accept glob patterns (e.g., brace, wildcard, ...) zplug "Jxck/dotfiles", as:command, use:"bin/{histuniq,color}" # Can manage everything e.g., other person´s zshrc zplug "tcnksm/docker-alias", use:zshrc # Prohibit updates to a plugin by using the "frozen:" tag zplug "k4rthik/git-cal", as:command, frozen:1 # Grab binaries from GitHub Releases # and rename using the "rename-to:" tag zplug "junegunn/fzf-bin", \ as:command, \ from:gh-r, \ rename-to:fzf, \ use:"*darwin*amd64*" # Support oh-my-zsh plugins and the like zplug "plugins/git", from:oh-my-zsh, if:"(( $+commands[git] ))" zplug "themes/duellj", from:oh-my-zsh, as:theme zplug "lib/clipboard", from:oh-my-zsh, if:"[[ $OSTYPE == *darwin* ]]" # Also supports prezto plugins zplug "modules/osx", from:prezto, if:"[[ $OSTYPE == *darwin* ]]" zplug "modules/prompt", from:prezto # Set zstyle before zplug load zstyle ´:prezto:module:prompt´ theme ´sorin´ # Run a command after a plugin is installed/updated zplug "tj/n", hook-build:"make install" # Support checking out a specific branch/tag/commit of a plugin zplug "b4b4r07/enhancd", at:v1 zplug "mollifier/anyframe", commit:4c23cb60 # Install if "if:" tag returns true zplug "hchbaw/opp.zsh", if:"(( ${ZSH_VERSION%%.*} < 5 ))" # Can manage gist file just like other plugins zplug "b4b4r07/79ee61f7c140c63d2786", \ as:command, \ from:gist, \ use:get_last_pane_path.sh # Support bitbucket zplug "b4b4r07/hello_bitbucket", \ as:command, \ from:bitbucket, \ hook-build:"chmod 755 *.sh", \ use:"*.sh" # Support Gitlab zplug "willemmali-sh/chegit", \ as:command, \ from:gitlab # Group dependencies, emoji-cli depends on jq in this example zplug "stedolan/jq", \ as:command, \ from:gh-r \ rename-to:jq, \ on:"b4b4r07/emoji-cli" # Defers the loading of a package # e.g., zsh-syntax-highlighting must be loaded # after executing compinit command and sourcing other plugins zplug "zsh-users/zsh-syntax-highlighting", defer:3 # Can manage local plugins zplug "~/.zsh", from:local # Load theme file zplug ´dracula/zsh´, as:theme # Install plugins if there are plugins that have not been installed if ! zplug check --verbose; then printf "Install? [y/N]: " if read -q; then echo; zplug install fi fi # Then, source plugins and add commands to $PATH zplug load --verbose Finally, use zplug install to install your plugins and reload .zshrc.
FURTHER DOCUMENTATION
See the references in official wiki page to get started using zplug. The wiki may perhaps be overwhelming for first-time users.
AUTHORS
zplug was originally written by Masaki Ishiyama (a.k.a @b4b4r07). Many people have contributed to it.
COPYING
Copyright (C) 2015-2016 Masaki Ishiyama MIT License
REPORTING BUGS
Report bugs to the zplug issues