diff --git a/deploy.sh b/deploy.sh index 24fb17c..7e2cb06 100755 --- a/deploy.sh +++ b/deploy.sh @@ -9,6 +9,7 @@ declare -A configs=( ["zsh/zshrc"]="$HOME/.zshrc" ["zsh/zsh_functions"]="$HOME/.config/zsh/zsh_functions.zsh" ["zsh/zsh_aliases"]="$HOME/.config/zsh/zsh_aliases.zsh" + ["zsh/zsh_exports"]="$HOME/.config/zsh/zsh_exports.zsh" ["fb-custom.zsh-theme"]="$HOME/.oh-my-zsh/custom/themes" ["nvim/init.lua"]="$HOME/.config/nvim/init.lua" ["nvim/lua"]="$HOME/.config/nvim/" diff --git a/zsh/zsh_exports b/zsh/zsh_exports new file mode 100644 index 0000000..f6375aa --- /dev/null +++ b/zsh/zsh_exports @@ -0,0 +1,2 @@ +export EDITOR=nvim +export MANPAGER="less -R --use-color -Dd+r -Du+b" # Colored MAN pages diff --git a/zsh/zshrc b/zsh/zshrc index 67f1c92..6cb984f 100644 --- a/zsh/zshrc +++ b/zsh/zshrc @@ -1,65 +1,46 @@ # call `zprof` to profile all calls in the current shell # Uncomment here and at the bottom of the file, then fully reopen a terminal -zmodload zsh/zprof +# zmodload zsh/zprof -# Path additions path=( $GOPATH/bin $HOME/.cargo/bin $HOME/.local/bin - $NVM_CONFIG_PREFIX/bin $path ) +# De-dupe path entries typeset -U path - -if type brew; then - source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh -else - source /usr/share/zsh/site-functions/zsh-autosuggestions.zsh -fi +path=($^path(N-/)) # Install oh-my-zsh if it doesn't exist -# if [ ! -d $HOME/.oh-my-zsh/ ] -# then - # sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" -# fi - -### ZSH Configuration -## Path variables -# Path to your oh-my-zsh installation. -# export ZSH="$HOME/.oh-my-zsh" - -export MANPAGER="less -R --use-color -Dd+r -Du+b" # Colored MAN pages - -# ZSH_THEME="fb-custom" - -# Uncomment the following line to use hyphen-insensitive completion. -# Case-sensitive completion must be off. _ and - will be interchangeable. -HYPHEN_INSENSITIVE="true" -DISABLE_AUTO_UPDATE="true" - -### Plugins -# Install the zsh-autosuggestions plugin if it doesn't exist -# if [ ! -d ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions ] -# then - # git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions -# fi - -# plugins=( - # zsh-autosuggestions - # virtualenvwrapper # Used for autoloading project .venvs -# ) - -# ZSH autosuggestions -if type brew &>/dev/null; then +if [ ! -d $HOME/.oh-my-zsh/ ] +then + sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" fi -autoload -Uz compinit -compinit -u +export ZSH="$HOME/.oh-my-zsh" -# FZF load -source <(fzf --zsh) +# Install the zsh-autosuggestions plugin if it doesn't exist +if [ ! -d ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions ] +then + git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions +fi + +plugins=( + fzf + zsh-autosuggestions + # zsh-syntax-highlighting + virtualenvwrapper +) + +# Disable the startup update checks +zstyle ':omz:update' mode disabled + +ZSH_THEME="fb-custom" + +# Hyphen insensitive completion, `-` and `_` are treated as interchangeable +HYPHEN_INSENSITIVE="true" # Vim mode setup set -o vi @@ -70,11 +51,11 @@ setopt hist_ignore_all_dups # Replace old history with the newest call to an ide setopt hist_ignore_space # Remove history lines that start with spaces setopt share_history # Share history between zsh instances without needing explicit sharing setopt auto_param_slash # Auto append a slash instead of a space if the completion is a dir +setopt extended_glob null_glob # Use Bash-like globbing # Experimental setopt append_history inc_append_history setopt no_case_glob no_case_match -setopt extended_glob null_glob # Completion options # Give descriptions of what the types of completions given @@ -82,24 +63,19 @@ zstyle ':completion:*:descriptions' format '%U%B%d%b%u' # Give an actual output when there is no match zstyle ':completion:*:warnings' format '%BNo matches for: %d%b' -### User configuration -export EDITOR=nvim -export NVM_CONFIG_PREFIX=$HOME/.local/ - # Autoload keychain for ssh-agent handling if it is installed -# if command -v keychain &> /dev/null -# then - # eval $(keychain --eval --quiet --nogui --noask) -# fi +if command -v keychain &> /dev/null +then + eval $(keychain --eval --quiet --nogui --noask) +fi # TODO: Replace above with GPG agent # GPG Agent handling of ssh key authorization and unlocks - # Inclusion of files to extend the configuration # From a theme to local specific changes, and grouping functions/aliases/exports include_files=( - "$HOME/.config/zsh/fb_theme.zsh" + # "$HOME/.config/zsh/fb_theme.zsh" "$HOME/.config/zsh/zsh_local.zsh" "$HOME/.config/zsh/zsh_aliases.zsh" "$HOME/.config/zsh/zsh_exports.zsh" @@ -115,6 +91,7 @@ for file in $include_files; do source $file done +source $ZSH/oh-my-zsh.sh # Call to zprof for startup timings -zprof +# zprof