1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
| # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below. printf "\e[?2004l" if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi
# Bash source ~/.bash_profile
# zinit ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}/zinit/zinit.git" [ ! -d $ZINIT_HOME ] && mkdir -p "$(dirname $ZINIT_HOME)" [ ! -d $ZINIT_HOME/.git ] && git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME" source "${ZINIT_HOME}/zinit.zsh" # 加载 powerlevel10k 主题 zinit ice depth=1; zinit light romkatv/powerlevel10k
# 快速目录跳转 zinit ice lucid wait='1' zinit light skywind3000/z.lua # 语法高亮 zinit ice lucid wait='0' atinit='zpcompinit' zinit light zdharma/fast-syntax-highlighting
# 自动建议 zinit ice lucid wait="0" atload='_zsh_autosuggest_start' zinit light zsh-users/zsh-autosuggestions
# 补全 zinit ice lucid wait='0' zinit light zsh-users/zsh-completions
# 加载 OMZ 框架及部分插件 zinit snippet OMZP::cp zinit snippet OMZ::lib/completion.zsh zinit snippet OMZ::lib/history.zsh zinit snippet OMZ::lib/key-bindings.zsh zinit snippet OMZ::lib/theme-and-appearance.zsh zinit snippet OMZ::plugins/colored-man-pages/colored-man-pages.plugin.zsh zinit snippet OMZ::plugins/sudo/sudo.plugin.zsh zinit snippet OMZP::gitignore
#git plugin zinit ice lucid wait='2' zinit snippet OMZ::plugins/git/git.plugin.zsh
# sharkdp/bat zinit ice as"command" from"gh-r" mv"bat* -> bat" pick"bat/bat" zinit light sharkdp/bat
# 加载它们的补全等 zinit ice mv="*.zsh -> _fzf" as="completion" zinit snippet 'https://github.com/junegunn/fzf/blob/master/shell/completion.zsh' zinit snippet 'https://github.com/junegunn/fzf/blob/master/shell/key-bindings.zsh' zinit ice as="completion" zinit snippet 'https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/fd/_fd'
# 配置 fzf 使用 fd export FZF_DEFAULT_COMMAND='fd --type f'
# ---- 加载完了 ----
# ZSH主题 #ZSH_THEME="powerlevel10k/powerlevel10k"
# p10k字体设置 #POWERLEVEL9K_MODE='nerdfont-complete'
# powerlevel10k #source /usr/local/opt/powerlevel10k/powerlevel10k.zsh-theme
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
# get_icon_names 查看图标配置 typeset -g POWERLEVEL9K_APPLE_ICON='\uf21b'
# Add RVM to PATH for scripting. Make sure this is the last PATH variable change. export PATH="$PATH:$HOME/.rvm/bin"
# iterm2插件 test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh"
# man 中文手册 export alias man='man -M /usr/local/share/man/zh_CN'
# [Ctrl+L] clear screen while maintaining scrollback fixed-clear-screen() { # FIXME: works incorrectly in tmux local prompt_height=$(echo -n ${(%%)PS1} | wc -l) local lines=$((LINES - prompt_height)) printf "$terminfo[cud1]%.0s" {1..$lines} # cursor down printf "$terminfo[cuu1]%.0s" {1..$lines} # cursor up zle reset-prompt } zle -N fixed-clear-screen bindkey '^L' fixed-clear-screen
# [Ctrl-R] Search history by fzf-tab fzf-history-search() { local selected=$( fc -rl 1 | ftb-tmux-popup -n '2..' --tiebreak=index --prompt='cmd> ' ${BUFFER:+-q$BUFFER} ) if [[ $selected != '' ]] { zle vi-fetch-history -n $selected } zle reset-prompt } zle -N fzf-history-search bindkey '^R' fzf-history-search
# [Ctrl-N] Navigate by xplr bindkey -s '^N' '^Q cd -- ${$(xplr):-.} \n'
# 一些样板代码(未来可能会改变) local extract=" # 提取当前选择的内容 in=\${\${\"\$(<{f})\"%\$'\0'*}#*\$'\0'} # 获取当前补全状态的上下文 local -A ctxt=(\"\${(@ps:\2:)CTXT}\") "
zstyle ':fzf-tab:complete:cd:*' extra-opts --preview=$extract'exa -1 --color=always ${~ctxt[hpre]}$in' zstyle ':fzf-tab:complete:kill:argument-rest' extra-opts --preview=$extract'ps --pid=$in[(w)1] -o cmd --no-headers -w -w' --preview-window=down:3:wrap # disable sort when completing `git checkout` zstyle ':completion:*:git-checkout:*' sort false # set descriptions format to enable group support zstyle ':completion:*:descriptions' format '[%d]' # set list-colors to enable filename colorizing zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} # preview directory's content with exa when completing cd zstyle ':fzf-tab:complete:cd:*' fzf-preview 'exa -1 --color=always $realpath' # switch group using `,` and `.` zstyle ':fzf-tab:*' switch-group ',' '.'
zstyle ':completion:*' completer _expand _complete _ignored _approximate zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' zstyle ':completion:*' menu select=2 zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s' zstyle ':completion:*:descriptions' format '-- %d --' zstyle ':completion:*:processes' command 'ps -au$USER' zstyle ':completion:complete:*:options' sort false zstyle ':fzf-tab:complete:_zlua:*' query-string input zstyle ':completion:*:*:*:*:processes' command 'ps -u $USER -o pid,user,comm,cmd -w -w'
### End of Zinit's installer chunk ___MY_VMOPTIONS_SHELL_FILE="${HOME}/.jetbrains.vmoptions.sh"; if [ -f "${___MY_VMOPTIONS_SHELL_FILE}" ]; then . "${___MY_VMOPTIONS_SHELL_FILE}"; fi
# tabtab source for electron-forge package # uninstall by removing these lines or running `tabtab uninstall electron-forge`
|