♻️ Migration
Oh-My-Zsh
OMZ Shorthand Syntax
zi snippet <URL> # Raw Syntax with URLzi snippet OMZ::<PATH> # Shorthand OMZ/ (http://github.com/ohmyzsh/ohmyzsh/raw/master/)zi snippet OMZL::<PATH> # Shorthand OMZ/lib/ (http://github.com/ohmyzsh/ohmyzsh/raw/master/lib)zi snippet OMZT::<PATH> # Shorthand OMZ/themes/ (http://github.com/ohmyzsh/ohmyzsh/raw/master/themes)zi snippet OMZP::<PATH> # Shorthand OMZ/plugins/ (http://github.com/ohmyzsh/ohmyzsh/raw/master/plugins)OMZ Library
Importing the clipboard and termsupport from the OMZ library sample:
Raw Syntax:
zi snippet https://github.com/ohmyzsh/ohmyzsh/blob/master/lib/clipboard.zshzi snippet https://github.com/ohmyzsh/ohmyzsh/blob/master/lib/termsupport.zshOMZ Shorthand Syntax:
zi snippet OMZ::lib/clipboard.zshzi snippet OMZ::lib/termsupport.zshOMZL Shorthand Syntax:
zi snippet OMZL::clipboard.zshzi snippet OMZL::termsupport.zshOMZ 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::rubyExample 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::pythonBundle 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-searchUse 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/_agOMZ Themes
Themes are stored in the themes directory. All and loaded in the background. with the simple syntax:
ZSH_THEME="robbyrussell"
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
Gitlibrary - Load the
Gitplugin - 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:
… $(build_prompt) …
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_shaIf 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.zshIf you encounter an error message similar to:
zsh: command not found: ruby_prompt_infoYou 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 -qThen load the prompt:
setopt promptsubstzi snippet OMZT::robbyrussellExternal theme sample: NicoSantangelo/Alpharized
Load with OMZ:
ZSH_THEME="alpharized"
Load with ZI:
zi snippet OMZL::git.zsh
Load Git plugin from OMZ:
zi snippet OMZP::gitzi cdclear -qsetopt promptsubstzi light NicoSantangelo/AlpharizedPrezto basics
Raw Syntax with URL:
zi snippet <URL>
Shorthand PZT: https://github.com/sorin-ionescu/prezto/tree/master/
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 https://github.com/sorin-ionescu/prezto/blob/master/modules/environment/init.zshzi snippet https://github.com/sorin-ionescu/prezto/blob/master/modules/terminal/init.zshPZT Shorthand Syntax:
zi snippet PZT::modules/environmentzi snippet PZT::modules/terminalPZTM Shorthand Syntax:
zi snippet PZTM::environmentzi snippet PZTM::terminalUse zi ice svn if multiple files require an entire subdirectory.
zi ice svnzi snippet PZTM::dockerzi ice svnzi snippet PZTM::gitUse 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::archiveUse zi ice atclone"git clone <repo> <location>" if module have external module.
zi ice svn blockf \ atclone"git clone --recursive https://github.com/zsh-users/zsh-completions.git external"zi snippet PZTM::completionUse blockf to prevent any unnecessary additions to fpath, as Zi manages fpath.
What is zstyle?
- Official (zsh.sourceforge.net): zstyle
- StackExchange: What does
zstyledo?
Zgen
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=>asuse=>pick,src,multisrcignore=> Nonefrom=>fromat=>verrename-to=>mv,cpdir=> Selection(pick, …) with renameif=>ifhook-build=>atclone,atpullhook-load=>atloadfrozen=> Noneon=> Nonedefer=>waitlazy=>autoloaddepth=>depth