DEV Community

Cover image for Summarized feature-rich plugin manager for Zsh
Sall for Digital Clouds

Posted on • Updated on

Summarized feature-rich plugin manager for Zsh

Logo

ZIis a fast and feature-rich plugin manager for Zsh - Unix shell.

Fast user experience

Stay flexible

  1. Run programs and scripts without adding anything to $PATH,
  2. Install and run Ruby Gems, Node, and Python modules from within a local directory with $GEM_HOME, $NODE_PATH, and $VIRTUALENV automatically set,
  3. Run programs, scripts, and functions with automatic cd into the plugin or snippet directory, plus also with automatic standard output & standard error redirecting.
  4. Source scripts through an automatically created function with the above $GEM_HOME, $NODE_PATH, $VIRTUALENV, and cd features available,
  5. Create the so-called shims known from rbenv – the same feature as the first item of this enumeration – of running a program without adding anything to $PATH with all of the above features, however through an automatic script created in $ZPFX/bin, not a function (the first item uses a function-based mechanism),
  6. Automatic updates of Ruby gems and Node modules during regular plugin and snippet updates with zi update ….
  7. Install almost everything from GitHub, and other Git providers.
  • Detailed information on how it works and how to achieve it is found in the wiki

Use what you want - not only what you can.

  • Supports loading Oh My Zsh and Prezto plugins and libraries, however, the implementation isn't framework-specific and doesn't bloat the plugin manager with such code, it allows to use of any framework. See our wiki on how to migrate from other plugin managers.

Boost performance with integrated tools

  • The dedicated packages offload the user from providing long and complex commands. See the Z-Shell ZI organization for a complete list of packages.

  • The specialized extensions — so-called annexes — expand with new commands, URL per-processors (used by e.g.: z-a-readurl annex), post-install and post-update hooks, and much more.

Keep it clean and consistent

  • The system does not use $FPATH, loading multiple plugins doesn't clutter $FPATH with the same number of entries (e.g. 10, 15, or more). Code is immune to KSH_ARRAYS and other options typically causing compatibility problems.

Focus on What Matters

  1. aliases
  2. functions
  3. bindkeys
  4. zle widgets
  5. zstyles
  6. completions management
  7. PATH, and FPATH elements.
  • Allows to quickly familiarize oneself with a new plugin and provides rich and easy-to-digest information that might be helpful on various occasions.

  • Supports the unloading of plugins and the ability to list, (un)install, and selectively disable, enable plugin's completions.

Documentation

ZI Wiki pages are often improved and updated. Easily find the topic you are looking for with the wiki search

New to Zsh or just need support?

Simply start a discussion and we will help. There is no such thing as a bad question - just ask :)


asciicast

Join the open-source

Friendly for new contributors!

It's a good place to start with or just to show off your skills as we have almost 100 repositories that require different types of developers with different types of experience.

GitHub Org: z-shell

Discussion (0)