dotfiles/.zshrc

121 lines
2.7 KiB
Bash

platform=`uname`
# Path to your oh-my-zsh configuration.
ZSH=$HOME/.zsh
# Plugins to enable - they are found in .zsh/plugins
PLUGINS=(safe-paste)
fpath=($fpath $ZSH/func)
typeset -U fpath
is_plugin() {
local base_dir=$1
local name=$2
test -f $base_dir/plugins/$name/$name.plugin.zsh \
|| test -f $base_dir/plugins/$name/_$name
}
# Add all defined plugins to fpath. This must be done
# before running compinit.
for plugin ($PLUGINS); do
if is_plugin $ZSH $plugin; then
fpath=($ZSH/plugins/$plugin $fpath)
fi
done
# Load all of the plugins that were defined in ~/.zshrc
for plugin ($PLUGINS); do
if [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then
source $ZSH/plugins/$plugin/$plugin.plugin.zsh
fi
done
# Setup the custom prompt
setopt promptsubst
autoload -U promptinit
promptinit
prompt grb
# Linux specific config
if [[ $platform == 'Linux' ]]; then
# Set caps to ctrl
#setxkbmap -option 'caps:ctrl_modifier'
# Make caps act as Esc when tapped. Require `xcape` package.
#xcape -e 'Caps_Lock=Escape'
fi
# Autoload things before calling compinit
autoload -Uz compinit
compinit -i
# Never know when you're gonna need to popd!
setopt AUTO_PUSHD
# Allow completing of the remainder of a command
bindkey "^N" insert-last-word
# Show contents of directory after cd-ing into it
chpwd() {
if [[ $platform == 'Linux' ]]; then
ls -lrthG --color
elif [[ $platform == 'Darwin' ]]; then
ls -lG
fi
}
# Save a ton of history
export HISTSIZE=20000
export HISTFILE="$HOME/.history"
export HISTCONTROL=ignoredups
export SAVEHIST=$HISTSIZE
setopt appendhistory autocd
bindkey -e
# Unbreak broken, non-colored terminal
export TERM=xterm-256color
# Use vim as the editor
export EDITOR=vim
# Homebrew setup
export HOMEBREW_NO_ANALYTICS=1
export HOMEBREW_NO_INSECURE_REDIRECT=1
export HOMEBREW_CASK_OPTS=--require-sha
# Ruby
export RBENV_PATH="$HOME/.rbenv"
# Clojure
export LEIN_FAST_TRAMPOLINE=y
if [ -d "$HOME/.rbenv" ]; then
# Start rbenv
eval "$(rbenv init -)"
fi
# Set to this to use case-sensitive completion
# CASE_SENSITIVE="true"
# Comment this out to disable weekly auto-update checks
# DISABLE_AUTO_UPDATE="true"
# Uncomment following line if you want to disable colors in ls
# DISABLE_LS_COLORS="true"
# Uncomment following line if you want to disable autosetting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment following line if you want red dots to be displayed while waiting for completion
# COMPLETION_WAITING_DOTS="true"
# Load all of the config files in ~/.zsh that end in .zsh
source $ZSH/lib/*.zsh
# Source my custom files after oh-my-zsh so I can override things.
test -f $HOME/.env.common && . $HOME/.env.common
# Fix <c-h> in neovim
infocmp $TERM | sed 's/kbs=^[hH]/kbs=\\177/' > $HOME/.$TERM.ti
tic $HOME/.$TERM.ti