dotfiles/.dotfiles/1-zsh

71 lines
1.9 KiB
Plaintext

export ZSH="$HOME/.oh-my-zsh"
export ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=20
plugins=(
aws
zsh-syntax-highlighting
zsh-autosuggestions
)
autoload -U compinit && compinit
# This speeds up pasting w/ autosuggest
# https://github.com/zsh-users/zsh-autosuggestions/issues/238
pasteinit() {
OLD_SELF_INSERT=${${(s.:.)widgets[self-insert]}[2,3]}
zle -N self-insert url-quote-magic # I wonder if you'd need `.url-quote-magic`?
}
pastefinish() {
zle -N self-insert $OLD_SELF_INSERT
}
zstyle :bracketed-paste-magic paste-init pasteinit
zstyle :bracketed-paste-magic paste-finish pastefinish
# https://github.com/zsh-users/zsh-autosuggestions/issues/351
ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(bracketed-paste accept-line)
DISABLE_UNTRACKED_FILES_DIRTY="true"
SHOW_AWS_PROMPT=false
source $ZSH/oh-my-zsh.sh
source `brew --prefix switch`/switch.sh
# History
HISTFILE="$HOME/.zsh_history"
HISTIGNORE="&:exit:reset:clear:zh"
setopt append_history
setopt hist_ignore_space
setopt HIST_IGNORE_DUPS
setopt sharehistory
setopt INC_APPEND_HISTORY
setopt HIST_REDUCE_BLANKS
# Options
setopt autocd
autoload -U add-zsh-hook
BAT_THEME="Monokai Extended Light"
BAT_STYLE="grid,header"
DISABLE_AUTO_TITLE="true"
# Override auto-title when static titles are desired ($ title My new title)
title() { export TITLE_OVERRIDDEN=1; echo -en "\e]0;$*\a"}
# Turn off static titles ($ autotitle)
autotitle() { export TITLE_OVERRIDDEN=0 }; autotitle
# Condition checking if title is overridden
overridden() { [[ $TITLE_OVERRIDDEN == 1 ]]; }
# Show cwd when shell prompts for input.
precmd() {
if overridden; then return; fi
pwd=$(pwd) # Store full path as variable
cwd=${pwd##*/} # Extract current working dir only
print -Pn "\e]0;$cwd\a" # Replace with $pwd to show full path
}
# Prepend command (w/o arguments) to cwd while waiting for command to complete.
preexec() {
if overridden; then return; fi
printf "\033]0;%s\a" "${1%% *} | $cwd" # Omit construct from $1 to show args
}