You've already forked dotfiles
feat: Update to the zsh setup, moving functions and aliases to their own
files, changing up the plugins and settings to remove stale setups and to reduce the loading time by nearly half
This commit is contained in:
95
zsh/zshrc
Normal file
95
zsh/zshrc
Normal file
@@ -0,0 +1,95 @@
|
||||
# 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
|
||||
|
||||
# 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=(
|
||||
fzf
|
||||
zsh-autosuggestions
|
||||
virtualenvwrapper # Used for autoloading project .venvs
|
||||
)
|
||||
|
||||
# Load Oh My ZSH
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
# 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
|
||||
|
||||
# Experimental
|
||||
setopt append_history inc_append_history share_history
|
||||
setopt auto_param_slash
|
||||
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'
|
||||
|
||||
### User configuration
|
||||
export EDITOR=nvim
|
||||
export NVM_CONFIG_PREFIX=$HOME/.local/
|
||||
|
||||
# Paths to prepend to system path
|
||||
path=(
|
||||
$GOPATH/bin
|
||||
$HOME/.cargo/bin
|
||||
$HOME/.local/bin
|
||||
$NVM_CONFIG_PREFIX/bin
|
||||
$path
|
||||
)
|
||||
|
||||
# Autoload keychain for ssh-agent handling if it is installed
|
||||
if command -v keychain &> /dev/null
|
||||
then
|
||||
eval $(keychain --eval --quiet --nogui --noask)
|
||||
fi
|
||||
|
||||
### Environment specific include files
|
||||
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
|
||||
|
||||
# Call to zprof for startup timings
|
||||
# zprof
|
||||
Reference in New Issue
Block a user