You've already forked dotfiles
times, testing with other prompts (Pure) and cleaning up the config files for better modularity and coherent settings.
98 lines
2.6 KiB
Bash
98 lines
2.6 KiB
Bash
# 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
|
|
|
|
path=(
|
|
$GOPATH/bin
|
|
$HOME/.cargo/bin
|
|
$HOME/.local/bin
|
|
$path
|
|
)
|
|
|
|
# De-dupe path entries
|
|
typeset -U path
|
|
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
|
|
|
|
export ZSH="$HOME/.oh-my-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
|
|
|
|
# ZSH options
|
|
setopt no_clobber # Do not clobber files by default
|
|
setopt hist_ignore_all_dups # Replace old history with the newest call to an identical call
|
|
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
|
|
|
|
# Completion options
|
|
# Give descriptions of what the types of completions given
|
|
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'
|
|
|
|
# Autoload keychain for ssh-agent handling if it is installed
|
|
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/zsh_local.zsh"
|
|
"$HOME/.config/zsh/zsh_aliases.zsh"
|
|
"$HOME/.config/zsh/zsh_exports.zsh"
|
|
"$HOME/.config/zsh/zsh_functions.zsh"
|
|
)
|
|
|
|
for file in $include_files; do
|
|
if [ ! -f $file ]
|
|
then
|
|
touch $file
|
|
fi
|
|
|
|
source $file
|
|
done
|
|
|
|
source $ZSH/oh-my-zsh.sh
|
|
|
|
# Call to zprof for startup timings
|
|
# zprof
|