Skip to main content

♻️ Migration


OMZ Shorthand Syntax

zi snippet <URL>        # Raw Syntax with URLzi snippet OMZ::<PATH>  # Shorthand OMZ/          ( snippet OMZL::<PATH> # Shorthand OMZ/lib/      ( snippet OMZT::<PATH> # Shorthand OMZ/themes/   ( snippet OMZP::<PATH> # Shorthand OMZ/plugins/  (

OMZ Library

Importing the clipboard and termsupport from the OMZ library sample:

Raw Syntax:

zi snippet snippet

OMZ Shorthand Syntax:

zi snippet OMZ::lib/clipboard.zshzi snippet OMZ::lib/termsupport.zsh

OMZL Shorthand Syntax:

zi snippet OMZL::clipboard.zshzi snippet OMZL::termsupport.zsh

OMZ Plugins

- plugins=(-  git-  dotenv-  rake-  rbenv-  ruby-)+ zi snippet OMZP::git+ zi snippet OMZP::dotenv+ zi snippet OMZP::rake+ zi snippet OMZP::rbenv+ zi snippet OMZP::ruby

Example of more advanced, conditional turbo loading:

zi is-snippet wait lucid for \    atload"unalias grv g" \  OMZP::{git,sudo,encode64,extract} \    if'[[ -d /opt/google-cloud-sdk ]]' \  OMZP::gcloud \    if'[[ -f /etc/os-release ]] && source /etc/os-release && [[ "$ID" = arch ]]' \  OMZP::archlinux \    if'[[ -d ~/.nvm ]]' \  OMZP::nvm \    if'[[ -d ~/.ssh ]]' \  OMZP::ssh-agent \    if'[[ -d ~/.gnupg ]]' \  OMZP::gpg-agent \    if'[[ "$OSTYPE" = *-gnu ]]' \  OMZP::gnu-utils \    has'pip' \  OMZP::pip \    has'python' \  OMZP::python

Bundle the example above to a single file:

zi snippet <some/path/or/url/bundled-snippets.zsh

Use zi ice svn if multiple files require an entire subdirectory.

zi ice svnzi snippet OMZP::gitfastzi ice svnzi snippet OMZP::osxzi ice svnzi snippet OMZP::history-substring-search

Use zi ice as"completion" to directly add single file completion snippets.

zi ice as"completion"zi snippet OMZP::docker/_dockerzi ice as"completion"zi snippet OMZP::fd/_fdzi ice as"completion"zi snippet OMZP::ag/_ag

OMZ Themes

Themes are stored in the themes directory. All and loaded in the background. with the simple syntax:


However, ZI doesn't support the ZSH_THEME variable natively.

To use themes created for OMZ requires loading shown below as it would be the same as OMZ does in the background.

Some themes may require additional configuration it can be determined from the theme configuration file.

  • Load Git library
  • Load the Git plugin
  • Load library dependencies
  • Enable setopt promptsubst

If any of the above are not in order or missing, the theme will break similar as shown below:


If the Git library is not loaded or loaded in the wrong order, then it may appear similar to the following:

........:1: command not found: git_prompt_status........:1: command not found: git_prompt_short_sha

If you encounter any issue with the theme, OMZ support libraries are to be loaded

  • If your theme isn't colored when it should, you will want to load theme-and-appearance.zsh

  • If you encounter an error message similar to:

zsh: command not found: ruby_prompt_info

You need to load prompt_info_functions.zsh

All together it looks like this:

zi snippet OMZL::git.zshzi snippet OMZP::gitzi snippet OMZL::theme-and-appearance.zshzi snippet OMZL::prompt_info_functions.zsh# Other libraries that might be neededzi cdclear -q

Then load the prompt:

setopt promptsubstzi snippet OMZT::robbyrussell

External theme sample: NicoSantangelo/Alpharized

Load with OMZ:


Load with ZI:

zi snippet OMZL::git.zsh

Load Git plugin from OMZ:

zi snippet OMZP::gitzi cdclear -qsetopt promptsubstzi light NicoSantangelo/Alpharized

Prezto basics

Raw Syntax with URL:

zi snippet <URL>

Shorthand PZT:

zi snippet PZT::<PATH>

Shorthand PZT/modules:

zi snippet PZTM::<PATH>

Prezto modules

Importing the environment and terminal Prezto Modules Sample:

Prezto Setting:

zstyle ':prezto:load' pmodule 'environment' 'terminal'

Zi Setting:

Import raw syntax from URL.

zi snippet snippet

PZT Shorthand Syntax:

zi snippet PZT::modules/environmentzi snippet PZT::modules/terminal

PZTM Shorthand Syntax:

zi snippet PZTM::environmentzi snippet PZTM::terminal

Use zi ice svn if multiple files require an entire subdirectory.

zi ice svnzi snippet PZTM::dockerzi ice svnzi snippet PZTM::git

Use zi ice as"null" if don't exist *.plugin.zsh, init.zsh, *.zsh-theme* files in module.

zi ice svn as"null"zi snippet PZTM::archive

Use zi ice atclone"git clone <repo> <location>" if module have external module.

zi ice svn blockf \  atclone"git clone --recursive external"zi snippet PZTM::completion

Use blockf to prevent any unnecessary additions to fpath, as Zi manages fpath.


What is zstyle?


Load OMZ library

- zgen oh-my-zsh+ zi snippet OMZL::<ANY OF THEM>

Load OMZ plugins

- zgen oh-my-zsh <PATH>+ zi snippet OMZP::<PATH>

Load Prezto modules

- zgen prezto+ zi snippet PZTM::<ANY FROM LIST BELOW>
  • environment
  • terminal
  • editor
  • history
  • directory
  • spectrum
  • utility
  • completion
  • prompt
- zgen prezto <modulename>+ zi snippet PZTM::<modulename>

Load repositories as prezto plugins:

- zgen pmodule <reponame> <branch>+ zi ice ver"<branch>"+ zi load <repo/plugin>

Summarized Zgen


For the location: refer selection of files

- zgen load <repo> [location] [branch]+ zi ice ver"[branch]"+ zi load <repo>

Zplug Basics

- zplug <repo/plugin>, tag1:<option1>, tag2:<option2>+ zi ice tag1"<option1>" tag2"<option2>"+ zi load <repo/plugin>

Tag comparison

  • as => as
  • use => pick, src, multisrc
  • ignore => None
  • from => from
  • at => ver
  • rename-to => mv, cp
  • dir => Selection(pick, …) with rename
  • if => if
  • hook-build => atclone, atpull
  • hook-load => atload
  • frozen => None
  • on => None
  • defer => wait
  • lazy => autoload
  • depth => depth