198 lines
5.9 KiB
Bash
198 lines
5.9 KiB
Bash
# if using zgen must do 'zgen reset' after any changes to this file
|
||
|
||
|
||
emulate sh
|
||
source "${HOME}/.profile"
|
||
emulate zsh
|
||
|
||
autoload -Uz compinit
|
||
autoload -Uz colors
|
||
typeset -i updated_at=$(date +'%j' -r ~/.zcompdump 2>/dev/null || stat -f '%Sm' -t '%j' ~/.zcompdump 2>/dev/null)
|
||
if [ $(date +'%j') != $updated_at ]; then
|
||
compinit -i
|
||
else
|
||
compinit -C -i
|
||
fi
|
||
|
||
# https://wiki.archlinux.org/index.php/Zsh#xterm_title
|
||
autoload -Uz add-zsh-hook
|
||
function xterm_title_precmd () {
|
||
print -Pn -- '\e]2;%n@%m %~\a'
|
||
[[ "$TERM" == 'screen'* ]] && print -Pn -- '\e_\005{g}%n\005{-}@\005{m}%m\005{-} \005{B}%~\005{-}\e\\'
|
||
}
|
||
function xterm_title_preexec () {
|
||
print -Pn -- '\e]2;%n@%m %~ %# ' && print -n -- "${(q)1}\a"
|
||
[[ "$TERM" == 'screen'* ]] && { print -Pn -- '\e_\005{g}%n\005{-}@\005{m}%m\005{-} \005{B}%~\005{-} %# ' && print -n -- "${(q)1}\e\\"; }
|
||
}
|
||
if [[ "$TERM" == (alacritty*|gnome*|konsole*|putty*|rxvt*|screen*|tmux*|xterm*) ]]; then
|
||
add-zsh-hook -Uz precmd xterm_title_precmd
|
||
add-zsh-hook -Uz preexec xterm_title_preexec
|
||
fi
|
||
|
||
|
||
# zgen
|
||
# https://github.com/tarjoilija/zgen
|
||
# after changes must do:
|
||
# zgen reset
|
||
# to remove static init script
|
||
|
||
source "${HOME}/.config/zsh/zgen/zgen.zsh"
|
||
# if the init script doesn't exist
|
||
if ! zgen saved; then
|
||
|
||
# specify plugins here
|
||
# zgen oh-my-zsh
|
||
|
||
zgen load denysdovhan/spaceship-prompt spaceship
|
||
zgen load zdharma/fast-syntax-highlighting
|
||
zgen load zsh-users/zsh-autosuggestions
|
||
zgen load zsh-users/zsh-history-substring-search
|
||
zgen load zsh-users/zsh-completions
|
||
zgen load wbingli/zsh-wakatime
|
||
zgen load peterhurford/up.zsh
|
||
zgen load supercrabtree/k
|
||
zgen load laggardkernel/git-ignore
|
||
zgen load AlexisBRENON/oh-my-zsh-reminder # commands todo, task_done -> todone
|
||
# zsh-fast-alias-tips
|
||
# Before using need to run 'make build'
|
||
# in plugin directory '~/.zgen/sei40kr/zsh-fast-alias-tips-master/'
|
||
# zgen load sei40kr/zsh-fast-alias-tips
|
||
|
||
# generate the init script from plugins above
|
||
zgen save
|
||
fi
|
||
|
||
|
||
# HISTFILE=~/.histfile
|
||
# HISTSIZE=10000
|
||
# SAVEHIST=$HISTSIZE
|
||
|
||
setopt hist_ignore_all_dups # remove older duplicate entries from history
|
||
setopt hist_reduce_blanks # remove superfluous blanks from history items
|
||
setopt inc_append_history # save history entries as soon as they are entered
|
||
setopt share_history # share history between different instances of the shell
|
||
|
||
setopt auto_cd # cd by typing directory name if it's not a command
|
||
setopt correct_all # autocorrect commands
|
||
setopt auto_list # automatically list choices on ambiguous completion
|
||
setopt auto_menu # automatically use menu completion
|
||
setopt always_to_end # move cursor to end if word had one match
|
||
|
||
unsetopt BEEP
|
||
|
||
zstyle ':completion:*' menu select # select completions with arrow keys
|
||
zstyle ':completion:*' group-name '' # group results by category
|
||
zstyle ':completion:::::' completer _expand _complete _ignored _approximate # enable approximate matches
|
||
|
||
bindkey -v
|
||
|
||
# The following line was added by compinstall
|
||
zstyle :compinstall filename '/home/ray/.zshrc'
|
||
zmodload -i zsh/complist
|
||
|
||
|
||
zstyle ':completion:*' menu select
|
||
zmodload zsh/complist
|
||
# use the vi navigation keys in menu completion
|
||
bindkey -M menuselect 'h' vi-backward-char
|
||
bindkey -M menuselect 'k' vi-up-line-or-history
|
||
bindkey -M menuselect 'l' vi-forward-char
|
||
bindkey -M menuselect 'j' vi-down-line-or-history
|
||
|
||
|
||
# zsh-history-subsrting-search settings
|
||
HISTORY_SUBSTRING_SEARCH_FUZZY=true
|
||
bindkey '^[[A' history-substring-search-up
|
||
bindkey '^[[B' history-substring-search-down
|
||
bindkey '' history-substring-search-up
|
||
bindkey '' history-substring-search-down
|
||
|
||
|
||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=239'
|
||
|
||
#zsh-autosuggestion settings
|
||
bindkey '^f' autosuggest-accept
|
||
|
||
|
||
SPACESHIP_TIME_SHOW=true
|
||
SPACESHIP_NODE_SYMBOL=node-
|
||
SPACESHIP_PACKAGE_PREFIX=
|
||
SPACESHIP_PACKAGE_SYMBOL=package.json:
|
||
SPACESHIP_DOCKER_SYMBOL=docker-
|
||
SPACESHIP_PHP_SYMBOL=php-
|
||
SPACESHIP_VENV_PREFIX=venv:\
|
||
SPACESHIP_VENV_SYMBOL=venv-
|
||
SPACESHIP_VENV_COLOR=7
|
||
SPACESHIP_EXIT_CODE_SHOW=true
|
||
SPACESHIP_EXIT_CODE_SYMBOL=
|
||
SPACESHIP_EXIT_CODE_COLOR=9
|
||
SPACESHIP_VI_MODE_SHOW=false
|
||
SPACESHIP_VI_MODE_COLOR=2
|
||
SPACESHIP_VI_MODE_INSERT=\>\ \>
|
||
SPACESHIP_VI_MODE_NORMAL=\-\-\-
|
||
SPACESHIP_TIME_COLOR=7
|
||
SPACESHIP_EXEC_TIME_ELAPSED=1
|
||
SPACESHIP_EXEC_TIME_COLOR=8
|
||
SPACESHIP_DIR_TRUNC_PREFIX=.../
|
||
SPACESHIP_DIR_TRUNC=0
|
||
SPACESHIP_DIR_TRUNC_REPO=false
|
||
SPACESHIP_DIR_COLOR=13
|
||
SPACESHIP_GIT_BRANCH_COLOR=12
|
||
SPACESHIP_GIT_BRANCH_SUFFIX=
|
||
SPACESHIP_GIT_STATUS_PREFIX=\
|
||
SPACESHIP_GIT_STATUS_SUFFIX=\
|
||
SPACESHIP_GIT_STATUS_COLOR=6
|
||
SPACESHIP_GIT_STATUS_COLOR=red
|
||
SPACESHIP_GIT_STATUS_UNTRACKED=??
|
||
SPACESHIP_GIT_STATUS_ADDED=A
|
||
SPACESHIP_GIT_STATUS_MODIFIED=M
|
||
SPACESHIP_GIT_STATUS_RENAMED=R
|
||
SPACESHIP_GIT_STATUS_DELETED=D
|
||
SPACESHIP_GIT_STATUS_STASHED=S
|
||
SPACESHIP_GIT_STATUS_UNMERGED=U
|
||
SPACESHIP_GIT_STATUS_AHEAD=++
|
||
SPACESHIP_GIT_STATUS_BEHIND=--
|
||
SPACESHIP_GIT_STATUS_DIVERGED=v
|
||
SPACESHIP_PROMPT_PREFIXES_SHOW=false
|
||
SPACESHIP_PROMPT_SUFIXES_SHOW=false
|
||
SPACESHIP_DIR_TRUNC=0
|
||
SPACESHIP_DIR_COLOR=7
|
||
SPACESHIP_DIR_LOCK_COLOR=1
|
||
SPACESHIP_CHAR_SYMBOL=\>\
|
||
SPACESHIP_CHAR_COLOR_SUCCESS=2
|
||
SPACESHIP_CHAR_COLOR_FAILURE=1
|
||
SPACESHIP_JOBS_COLOR=13
|
||
SPACESHIP_JOBS_SYMBOL=\<\<\<
|
||
SPACESHIP_JOBS_AMOUNT_PREFIX=\
|
||
SPACESHIP_JOBS_AMOUNT_SUFFIX=\
|
||
SPACESHIP_JOBS_AAMOUNT_THRESHOLD=1
|
||
|
||
SPACESHIP_RPROMPT_ORDER=(
|
||
time # Time stamps section
|
||
exit_code # Exit code section
|
||
)
|
||
SPACESHIP_PROMPT_ORDER=(
|
||
user # Username section
|
||
host # Hostname section
|
||
git # Git section (git_branch + git_status)
|
||
docker # Docker section
|
||
venv # virtualenv section
|
||
pyenv # Pyenv section
|
||
dir # Current directory section
|
||
exec_time # Execution time
|
||
# battery # Battery level and status
|
||
line_sep # Line break
|
||
jobs # Background jobs indicator
|
||
vi_mode # Vi-mode indicator
|
||
exit_code # Exit code section
|
||
char # Prompt character
|
||
)
|
||
|
||
spaceship_vi_mode_disable
|
||
|
||
alias todone='task_done'
|
||
|
||
# remove duplicate PATH entries
|
||
# https://til.hashrocket.com/posts/7evpdebn7g-remove-duplicates-in-zsh-path
|
||
typeset -aU path
|