all repos — archive/dotfiles @ 33a879120f966608107829cd94daa16aaf53eee4

Superseded by nixfiles

tag-zsh/config/zsh/zshrc (view raw)

# -*- mode: sh; -*-
source $ZPLUG_HOME/init.zsh

zplug "zsh-users/zsh-completions"
zplug "Tarrasch/zsh-autoenv", as:plugin
zplug "clvv/fasd", hook-build:"PREFIX=$HOME make install"
zplug "caarlos0/zsh-open-pr", as:plugin
if [[ -n $commands[nix-env] ]]
then
	zplug "spwhitt/nix-zsh-completions", as:plugin
	fpath=($fpath $ZPLUG_REPOS/spwhitt/nix-zsh-completions)
fi

zplug "gerges/oh-my-zsh-jira-plus", as:plugin, if:"[[ ${(SN)HOST%spotcap} ]]"
zplug "lukechilds/zsh-better-npm-completion", if:"[[ -n $commands[npm] ]]", nice:10
zplug "hlissner/zsh-autopair", nice:10

WORDCHARS=${${WORDCHARS//[-.]}//[\/]}

if [[ ${path[(I)$HOME/bin ]} ]]
then
	path+=($HOME/bin)
fi

ls='\ls'
gnu_ls_options="-v --group-directories-first --color=auto"
gnu_ls_isodate="--time-style=long-iso"
bsd_ls_options="-p"
bsd_ls_isodate="-D '%F %k:%M'"

case $OSTYPE in
	darwin*)
		if [[ -n $commands[gls] ]]
		then
			ls='\gls'
			ls_options=$gnu_ls_options
			ls_isodate=$gnu_ls_isodate
		else
			ls_options=$bsd_ls_options
			ls_isodate=$bsd_ls_isodate
		fi
		;;
	freebsd*)
		ls_options=$bsd_ls_options
		ls_isodate=$bsd_ls_isodate
		;;
	linux-gnu)
		ls_options=$gnu_ls_options
		ls_isodate=$gnu_ls_isodate
		;;
esac
alias l="${ls} ${ls_options} -Bp"
alias l1="${ls} ${ls_options} -1"
alias ls="${ls} ${ls_options} -hF"
alias la="${ls} ${ls_options} -hA"
alias ll="${ls} ${ls_options} ${ls_isodate} -hl"
alias lal="ll -A"
alias lla="lal"
alias llr="ll -t"

zmodload zsh/terminfo

bindkey '\e[3~' delete-char

bindkey '\C-hd' describe-key-briefly

backward-argument () {
	local WORDCHARS="\!\`~#@$%^&*()-_=+[{]}\|;:,<.>/?\'\""
	zle backward-word
}

forward-argument () {
	local WORDCHARS="\!\`~#@$%^&*()-_=+[{]}\|;:,<.>/?\'\""
	zle forward-word
}

kill-argument () {
	local WORDCHARS="\!\`~#@$%^&*()-_=+[{]}\|;:,<.>/?\'\""
	zle backward-argument
	zle kill-word
}

zle -N backward-argument
zle -N forward-argument
zle -N kill-argument
bindkey '\e^b' backward-argument
bindkey '\e^f' forward-argument
bindkey '\e^k' kill-argument

zle -C hist-complete complete-word _generic
zstyle ':completion:hist-complete:*' completer _history
bindkey '\e	' hist-complete

zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' '+m:{A-Z}={a-z}'
zstyle ':completion:*' completer _expand _complete _match

if [[ -z $SSH_AUTH_SOCK && $commands[ssh-agent] ]]
then
	eval $(ssh-agent)
fi

if zplug check Tarrasch/zsh-autoenv
then
	AUTOENV_FILE_ENTER=.envrc
	AUTOENV_HANDLE_LEAVE=0
	AUTOENV_LOOK_UPWARDS=1
fi

if zplug check gerges/oh-my-zsh-jira-plus
then
	JIRA_RAPID_BOARD=true
fi

# Then, source plugins and add commands to $PATH
zplug load

# General configuration
setopt auto_cd 					# Change directories without `cd`

if zplug check zsh-users/zsh-completions
then
	autoload -U compinit && compinit
fi

if [[ -n $commands[lunchy] ]]
then
	LUNCHY_DIR=$(dirname $(gem which lunchy))/../extras
	if [ -f $LUNCHY_DIR/lunchy-completion.zsh ]; then
		. $LUNCHY_DIR/lunchy-completion.zsh
	fi
fi

if [[ $TERM == "dumb" ]]
then
	PROMPT="> "
else
	unset RPROMPT
	# show username@host if logged in through SSH
	[[ "$SSH_CONNECTION" != '' ]] && prompt_pure_username=' %F{242}%n@%m%f'

	# show username@host if root, with username in white
	[[ $UID -eq 0 ]] && prompt_pure_username=' %F{white}%n%f%F{242}@%m%f'

	setopt prompt_subst
	setopt prompt_cr
	PROMPT='%F{blue}%~%f${prompt_pure_username}
%(?.%F{magenta}.%F{red})>%f '
fi

if zplug check clvv/fasd
then
	if [[ -n $commands[fasd] ]]
	then
		_FASD_DATA="$HOME/.cache/zsh/fasd-data"
		source =fasd

		fasd_cache="$HOME/.fasd-init-zsh"
		if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then
			fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install >| "$fasd_cache"
		fi
		source "$fasd_cache"
		unset fasd_cache
	else
		echo "no fasd"
	fi
fi

unsetopt flow_control 			# Let me use ^S and ^Q