228 lines
9.8 KiB
Plaintext
228 lines
9.8 KiB
Plaintext
# =============================================================================
|
|
# Plugins
|
|
# =============================================================================
|
|
# Check if zplug is installed
|
|
[ ! -d ~/.zplug ] && git clone https://github.com/zplug/zplug ~/.zplug
|
|
|
|
# enable zplug
|
|
source ~/.zplug/init.zsh
|
|
zplug 'zplug/zplug', hook-build:'zplug --self-manage'
|
|
|
|
# Because your terminal should be able to perform tasks asynchronously without external tools!
|
|
zplug "mafredri/zsh-async", from:github, use:async.zsh
|
|
|
|
# introduce 256 colors in terminal
|
|
zplug "chrissicool/zsh-256color"
|
|
|
|
# not sure what anyframe does... allows other plugins to function? works with fzf
|
|
zplug "mollifier/anyframe"
|
|
if zplug check "mollifier/anyframe"; then
|
|
# expressly specify to use peco
|
|
#zstyle ":anyframe:selector:" use peco
|
|
# expressly specify to use percol
|
|
#zstyle ":anyframe:selector:" use percol
|
|
# expressly specify to use fzf-tmux
|
|
#zstyle ":anyframe:selector:" use fzf-tmux
|
|
# expressly specify to use fzf
|
|
zstyle ":anyframe:selector:" use fzf
|
|
|
|
# specify path and options for peco, percol, or fzf
|
|
#zstyle ":anyframe:selector:peco:" command 'peco --no-ignore-case'
|
|
#zstyle ":anyframe:selector:percol:" command 'percol --case-sensitive'
|
|
#zstyle ":anyframe:selector:fzf-tmux:" command 'fzf-tmux --extended'
|
|
#zstyle ":anyframe:selector:fzf:" command 'fzf --extended'
|
|
#zstyle ":anyframe:selector:fzf:" command 'fzf'
|
|
|
|
#bindkey '^@' anyframe-widget-cd-ghq-repository
|
|
#bindkey '^r' anyframe-widget-put-history
|
|
fi
|
|
|
|
# print a github style calendar in terminal
|
|
zplug "k4rthik/git-cal", as:command
|
|
|
|
# Simplistic interactive filtering tool
|
|
zplug "peco/peco", as:command, from:gh-r, use:"*${(L)$(uname -s)}*amd64*"
|
|
|
|
# fzf is a general-purpose command-line fuzzy finder.
|
|
zplug "junegunn/fzf-bin", as:command, from:gh-r, rename-to:fzf, use:"*${(L)$(uname -s)}*amd64*"
|
|
if zplug check "junegunn/fzf-bin"; then
|
|
export FZF_DEFAULT_OPTS="--height 40% --reverse --border --inline-info --color=dark,bg+:235,hl+:10,pointer:5"
|
|
fi
|
|
zplug "junegunn/fzf", use:"shell/*.zsh"
|
|
# C^x C^x to launch fzf?
|
|
zplug "b4b4r07/easy-oneliner", if:"which fzf", on:"junegunn/fzf-bin"
|
|
|
|
|
|
# Enhanced cd
|
|
zplug "b4b4r07/enhancd", use:init.sh
|
|
if zplug check "b4b4r07/enhancd"; then
|
|
ENHANCD_FILTER="fzf:peco:percol"
|
|
# type 'c' and get a list of likely dirs you want to go to
|
|
ENHANCD_COMMAND="c"
|
|
fi
|
|
|
|
# Bookmarks and jump
|
|
zplug "jocelynmallon/zshmarks"
|
|
|
|
# Enhanced dir list with git features
|
|
zplug "supercrabtree/k"
|
|
|
|
# Jump back to parent directory
|
|
zplug "tarrasch/zsh-bd"
|
|
|
|
# Simple zsh calculator
|
|
zplug "arzzen/calc.plugin.zsh"
|
|
|
|
zplug "plugins/common-aliase", from:oh-my-zsh
|
|
zplug "plugins/command-not-found", from:oh-my-zsh
|
|
zplug "plugins/copydir", from:oh-my-zsh
|
|
zplug "plugins/copyfile", from:oh-my-zsh
|
|
zplug "plugins/cp", from:oh-my-zsh
|
|
zplug "plugins/dircycle", from:oh-my-zsh
|
|
zplug "plugins/encode64", from:oh-my-zsh
|
|
zplug "plugins/extract", from:oh-my-zsh
|
|
zplug "plugins/history", from:oh-my-zsh
|
|
zplug "plugins/tmux", from:oh-my-zsh
|
|
zplug "plugins/tmuxinator", from:oh-my-zsh
|
|
zplug "plugins/urltools", from:oh-my-zsh
|
|
zplug "plugins/web-search", from:oh-my-zsh
|
|
zplug "plugins/z", from:oh-my-zsh
|
|
zplug "plugins/fancy-ctrl-z", from:oh-my-zsh
|
|
|
|
# Supports oh-my-zsh plugins and the like
|
|
if [[ $OSTYPE = (linux)* ]]; then
|
|
zplug "plugins/archlinux", from:oh-my-zsh, if:"(( $+commands[pacman] ))"
|
|
zplug "plugins/dnf", from:oh-my-zsh, if:"(( $+commands[dnf] ))"
|
|
zplug "plugins/mock", from:oh-my-zsh, if:"(( $+commands[mock] ))"
|
|
fi
|
|
|
|
zplug "plugins/git", from:oh-my-zsh, if:"(( $+commands[git] ))"
|
|
zplug "plugins/golang", from:oh-my-zsh, if:"(( $+commands[go] ))"
|
|
zplug "plugins/svn", from:oh-my-zsh, if:"(( $+commands[svn] ))"
|
|
zplug "plugins/node", from:oh-my-zsh, if:"(( $+commands[node] ))"
|
|
zplug "plugins/npm", from:oh-my-zsh, if:"(( $+commands[npm] ))"
|
|
zplug "plugins/bundler", from:oh-my-zsh, if:"(( $+commands[bundler] ))"
|
|
zplug "plugins/gem", from:oh-my-zsh, if:"(( $+commands[gem] ))"
|
|
zplug "plugins/rvm", from:oh-my-zsh, if:"(( $+commands[rvm] ))"
|
|
zplug "plugins/pip", from:oh-my-zsh, if:"(( $+commands[pip] ))"
|
|
zplug "plugins/sudo", from:oh-my-zsh, if:"(( $+commands[sudo] ))"
|
|
zplug "plugins/gpg-agent", from:oh-my-zsh, if:"(( $+commands[gpg-agent] ))"
|
|
zplug "plugins/systemd", from:oh-my-zsh, if:"(( $+commands[systemctl] ))"
|
|
zplug "plugins/docker", from:oh-my-zsh, if:"(( $+commands[docker] ))"
|
|
zplug "plugins/docker-compose", from:oh-my-zsh, if:"(( $+commands[docker-compose] ))"
|
|
zplug "plugins/terraform", from:oh-my-zsh, if:"(( $+commands[terraform] ))"
|
|
zplug "plugins/vagrant", from:oh-my-zsh, if:"(( $+commands[vagrant] ))"
|
|
|
|
zplug "djui/alias-tips"
|
|
zplug "hlissner/zsh-autopair", defer:2
|
|
|
|
# Additional completion definitions for Zsh.
|
|
zplug "zsh-users/zsh-completions"
|
|
|
|
# Suggests commands as you type based on history and completions.
|
|
zplug "zsh-users/zsh-autosuggestions"
|
|
if zplug check "zsh-users/zsh-autosuggestions"; then
|
|
#ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=10'
|
|
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=075' #color could be adjusted to theme
|
|
#ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=162'
|
|
fi
|
|
|
|
# zsh-syntax-highlighting must be loaded after executing compinit command and sourcing other plugins
|
|
zplug "zsh-users/zsh-syntax-highlighting", defer:2
|
|
if zplug check "zsh-users/zsh-syntax-highlighting"; then
|
|
typeset -gA ZSH_HIGHLIGHT_STYLES ZSH_HIGHLIGHT_PATTERNS
|
|
|
|
ZSH_HIGHLIGHT_STYLES[default]='none'
|
|
ZSH_HIGHLIGHT_STYLES[cursor]='fg=yellow'
|
|
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red'
|
|
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=yellow'
|
|
ZSH_HIGHLIGHT_STYLES[alias]='fg=cyan'
|
|
ZSH_HIGHLIGHT_STYLES[builtin]='fg=cyan'
|
|
ZSH_HIGHLIGHT_STYLES[function]='fg=cyan'
|
|
ZSH_HIGHLIGHT_STYLES[command]='fg=cyan'
|
|
ZSH_HIGHLIGHT_STYLES[precommand]='fg=green'
|
|
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=yellow'
|
|
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green'
|
|
ZSH_HIGHLIGHT_STYLES[path]='fg=white,underline'
|
|
ZSH_HIGHLIGHT_STYLES[path_pathseparator]='fg=grey,underline'
|
|
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=white'
|
|
ZSH_HIGHLIGHT_STYLES[path_approx]='fg=white'
|
|
ZSH_HIGHLIGHT_STYLES[globbing]='none'
|
|
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=green'
|
|
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=blue'
|
|
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=blue'
|
|
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='none'
|
|
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=magenta'
|
|
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=magenta'
|
|
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=cyan'
|
|
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=cyan'
|
|
ZSH_HIGHLIGHT_STYLES[redirection]='fg=magenta'
|
|
ZSH_HIGHLIGHT_STYLES[bracket-level-1]='fg=cyan,bold'
|
|
ZSH_HIGHLIGHT_STYLES[bracket-level-2]='fg=green,bold'
|
|
ZSH_HIGHLIGHT_STYLES[bracket-level-3]='fg=magenta,bold'
|
|
ZSH_HIGHLIGHT_STYLES[bracket-level-4]='fg=yellow,bold'
|
|
ZSH_HIGHLIGHT_STYLES[assign]='none'
|
|
|
|
ZSH_HIGHLIGHT_PATTERNS=('rm -rf *' 'fg=white,bold,bg=red')
|
|
|
|
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern cursor line)
|
|
fi
|
|
|
|
# search in zsh history
|
|
zplug "zsh-users/zsh-history-substring-search", defer:3
|
|
if zplug check "zsh-users/zsh-history-substring-search"; then
|
|
zmodload zsh/terminfo
|
|
bindkey "$terminfo[kcuu1]" history-substring-search-up
|
|
bindkey "$terminfo[kcud1]" history-substring-search-down
|
|
bindkey "^[[1;5A" history-substring-search-up
|
|
bindkey "^[[1;5B" history-substring-search-down
|
|
fi
|
|
|
|
# Finalise the zplug section, install and load
|
|
# Install plugins if there are plugins that have not been installed
|
|
if ! zplug check; then
|
|
printf "Install plugins? [y/N]: "
|
|
if read -q; then
|
|
echo; zplug install
|
|
fi
|
|
fi
|
|
|
|
# zplug load is called in the last stage (see other ./custom files)
|
|
|
|
# Completions
|
|
# the internal list (hash) of commands will be updated for each search by issuing the rehash command
|
|
zstyle ':completion:*' rehash true
|
|
# http://zsh.sourceforge.net/Doc/Release/Completion-System.html
|
|
zstyle ':completion:' completer _complete _match _approximate
|
|
zstyle ':completion:' group-name ''
|
|
#zstyle ':completion:' list-colors ${(s.:.)LS_COLORS}
|
|
zstyle ':completion:' matcher-list 'm:{a-z}={A-Z}'
|
|
zstyle ':completion:' use-cache true
|
|
zstyle ':completion:' verbose yes
|
|
zstyle ':completion::default' menu select=2
|
|
zstyle ':completion::descriptions' format '%F{yellow}-- %d --%f'
|
|
zstyle ':completion:*:options' description 'yes'
|
|
# case-insensitive (uppercase from lowercase) completion
|
|
#zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
|
|
# process completion
|
|
#zstyle ':completion:*:processes' command 'ps -au$USER'
|
|
#zstyle ':completion:*:*:kill:*:processes' list-colors "=(#b) #([0-9]#)*=36=31"
|
|
zstyle ':completion:*' completer _expand _complete _ignored _approximate
|
|
#zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
|
|
zstyle ':completion:*' menu select=2
|
|
zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s'
|
|
zstyle ':completion:*:descriptions' format '%U%F{yellow}%d%f%u'
|
|
#zstyle ':completion:*:*:git:*' script ~/.git-completion.sh
|
|
zstyle ':completion:*' verbose yes
|
|
zstyle ':completion:*:descriptions' format '%B%d%b'
|
|
zstyle ':completion:*:messages' format '%d'
|
|
zstyle ':completion:*:warnings' format 'No matches for: %d'
|
|
zstyle ':completion:*' group-name ''
|
|
# case-insensitive (all), partial-word and then substring completion
|
|
zstyle ":completion:*" matcher-list \
|
|
"m:{a-zA-Z}={A-Za-z}" \
|
|
"r:|[._-]=* r:|=*" \
|
|
"l:|=* r:|=*"
|
|
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
|
zstyle ':completion:*:default' list-colors "${(s.:.)LS_COLORS}"
|