My modifications to the zim framework
Custom commands for zim
d19c8dde — Grant Guthrie 1 year, 9 months ago
[history-substring-search] Verify terminfo before bindkey


browse  log 



You can also use your local clone with git send-email.

#Zsh IMproved FrameWork

#What is Zim?

Zim is a Zsh configuration framework with blazing speed and modular extensions.

Zim is very easy to customize, and comes with a rich set of modules and features without compromising on speed or functionality!

#What does Zim offer?

If you're here, it means you want to see the cool shit Zim can do. Check out the available modules!

Below is a brief showcase of Zim's features.


For a speed comparison between Zim and other frameworks, see this wiki entry.


To preview some of the available themes, check the themes wiki page.

#Fish-shell history navigation


#Syntax highlighting


#And much more!

Zim has many modules! Enable as many or as few as you'd like.


Installing Zim is easy. If you have a different shell framework installed (like oh-my-zsh or prezto), uninstall those first to prevent conflicts. It can be installed manually by following the instructions below:

  1. Start a Zsh shell:

  2. Clone the repository:

    git clone --recursive https://github.com/zimfw/zimfw.git ${ZDOTDIR:-${HOME}}/.zim
  3. Paste this into your terminal to prepend the initialization templates to your configs:

    for template_file in ${ZDOTDIR:-${HOME}}/.zim/templates/*; do
      cat ${template_file} ${user_file}(.N) > ${user_file}.tmp && mv ${user_file}{.tmp,}
  4. Set Zsh as the default shell:

    chsh -s =zsh
  5. Open a new terminal and finish optimization (this is only needed once, hereafter it will happen upon desktop/tty login):

    source ${ZDOTDIR:-${HOME}}/.zlogin
  6. You're done! Enjoy your Zsh IMproved! Take some time to read about the available modules and tweak your .zshrc file.


To update Zim, run:

zmanage update

For more information about the zmanage tool, run zmanage help.


The best way to remove Zim is to manually delete ~/.zim, ~/.zimrc, and remove the initialization lines from your ~/.zshrc and ~/.zlogin.

However, there are some experimental convenience functions to remove Zim:

NOTE: This functionality is experimental!

To remove Zim, run:

zmanage remove

NOTE: This functionality is experimental!