♻️ 迁移
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 example:
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.zshExample of more advanced, library loading using subversion:
if (( $+commands[svn] )) { sni=({git,theme-and-appearance,prompt_info_functions,history,completion,vcs_info}.zsh) zi is-snippet has'svn' for svn \ multisrc'${sni[*]}' pick'/dev/null' \ atinit'typeset -gx COMPLETION_WAITING_DOTS=true \ HISTSIZE=290000 SAVEHIST=290000 HISTFILE=${ZSH_CACHE_DIR}/.history;' \ OMZ::lib unset sni} else { +zi-message "{auto}Subversion not installed!"}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::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 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.
有些主题可能需要额外的配置,它可以从主题配置文件中确定。
- Load
gitlibrary - Load the
gitplugin - Load library dependencies
- Enable
setopt prompt_subst
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.zshThen load the prompt:
setopt prompt_substzi snippet OMZT::robbyrussellExternal theme sample: NicoSantangelo/Alpharized
Load with OMZ:
ZSH_THEME="alpharized"
Load git library from OMZ:
zi snippet OMZL::git.zsh
Load git plugin from OMZ:
zi snippet OMZP::gitzi cdclear -qThen load the prompt:
setopt prompt_substzi light NicoSantangelo/AlpharizedPrezto
PZT shorthand syntax
zi snippet <URL> # Raw syntax with URLzi snippet PZT::<PATH> # Shorthand PZT:: (https://github.com/sorin-ionescu/prezto/tree/master/)zi snippet PZTM::<PATH> # Shorthand PZT::modules/ (https://github.com/sorin-ionescu/prezto/tree/master/modules/)PZT modules
Importing the environment and terminal Prezto modules example:
Raw syntax
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::<PATH>zi snippet PZT::modules/environmentzi snippet PZT::modules/terminalPZTM shorthand syntax:
zi snippet PZTM::<PATH>zi snippet PZTM::environmentzi snippet PZTM::terminalPrezto modules:
- zstyle ':prezto:load' pmodule 'git'- zstyle ':prezto:load' pmodule 'environment' 'terminal'+ zi snippet PZTM::git+ zi is-snippet for PZTM::environment PZTM::terminalAvailable Prezto modules:
| Module name | Description |
|---|---|
| archive | Provides functions to list and extract archives. |
| autosuggestions | Integrates zsh-autosuggestions plugin into Prezto. |
| command-not-found | Loads the command-not-found tool on macOS or Debian-based distributions. |
| completion | Sets TAB completion and provides additional completions from the zsh-completions. |
| directory | Sets directory options and defines directory aliases. |
| dnf | Defines dnf aliases. |
| docker | Defines docker aliases and functions. |
| dpkg | Defines dpkg aliases and functions. |
| editor | Sets key bindings. |
| emacs | Enables Emacs dependency management. |
| environment | Sets general shell options and defines environment variables. |
| fasd | Maintains a frequently used file and directory list for fast access. |
| git | Enhances the Git by providing aliases, functions and by exposing repository status information to prompts. |
| gnu-utility | Provides for the interactive use of GNU utilities on non-GNU systems. |
| gpg | Provides for an easier use of GPG by setting up gpg-agent. |
| haskell | Enables local Haskell package installation. |
| helper | Provides helper functions for developing modules. |
| history-substring-search | Integrates zsh-history-substring-search into Prezto. |
| history | Sets history options and defines history aliases. |
| homebrew | Defines Homebrew aliases. |
| macports | Defines MacPorts aliases and adds MacPorts directories to path variables. |
| node | Provides utility functions for Node.js and loads npm completion. |
| ocaml | Initializes OCaml package management. |
| osx | Defines macOS aliases and functions. |
| pacman | Provides aliases and functions for the Pacman package manager and frontends. |
| perl | Enables local Perl module installation on macOS and defines aliases. |
| prompt | Loads prompt themes. |
| python | Enables local Python and local Python package installation. |
| rails | Defines Ruby on Rails aliases. |
| rsync | Defines rsync aliases. |
| ruby | Configures Ruby local gem installation, loads version managers, and defines aliases. |
| screen | Defines GNU Screen aliases and provides for auto launching it at start-up. |
| spectrum | Provides for easier use of 256 colors and effects. |
| ssh | Provides for an easier use of SSH by setting up ssh-agent. |
| syntax-highlighting | Integrates zsh-syntax-highlighting into Prezto. |
| terminal | Sets terminal window and tab titles. |
| tmux | Defines tmux aliases and provides for auto launching it at start-up. |
| utility | Defines general aliases and functions. |
| wakeonlan | This module provides a wrapper around the wakeonlan tool. |
| yum | Defines yum aliases. |
Use 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" no *.plugin.zsh, init.zsh, *.zsh-theme* files exist in module directory.
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): zsh/zutil
- StackExchange: What does
zstyledo?
Available
Zgen
Load OMZ library
- zgen oh-my-zsh+ zi snippet OMZL::<ANY OF THEM>加载 OMZ 插件
- zgen oh-my-zsh <PATH>+ zi snippet OMZP::<PATH>Load Prezto modules
- zgen prezto <module name>+ zi snippet PZTM::<module name>Load repositories as prezto plugins:
- zgen pmodule <reponame> <branch>+ zi ice ver"<branch>"+ zi load <repo/plugin>Summarized Zgen
For the location: refer src, pick, multisrc ice-modifier.
- zgen load <repo> [location] [branch]+ zi ice ver"[branch]"+ zi load <repo>Zplug 基础知识
- 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