♻️ 迁移
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.zsh
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:
ZSH_THEME="robbyrussell"
However, ZI doesn't support the ZSH_THEME
variable natively.
To use themes created for OMZ, it requires loading shown below as it would be the same as OMZ does in the background.
有些主题可能需要额外的配置,它可以从主题配置文件中确定。
- Load
Git
library - Load
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:
… $(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_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:
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/Alpharized
Prezto 基础知识
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:
从 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.zsh
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 https://github.com/zsh-users/zsh-completions.git external"zi snippet PZTM::completion
Use blockf
to prevent any unnecessary additions to fpath, as ZI manages fpath.
What is zstyle
?
- Official (zsh.sourceforge.net): zstyle
- StackExchange: What does
zstyle
do?
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 基础知识
- 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
=> Nonefrom
=>from
at
=>ver
rename-to
=>mv
,cp
dir
=> Selection(pick
, …) with renameif
=>if
hook-build
=>atclone
,atpull
hook-load
=>atload
frozen
=> Noneon
=> Nonedefer
=>wait
lazy
=>autoload
depth
=>depth