setopt EXTENDED_HISTORY
setopt HIST_EXPIRE_DUPS_FIRST
setopt HIST_IGNORE_DUPS
setopt HIST_IGNORE_ALL_DUPS
setopt HIST_IGNORE_SPACE
setopt HIST_FIND_NO_DUPS
setopt HIST_SAVE_NO_DUPS
setopt HIST_BEEP

autoload -Uz compinit
compinit

export LANG=zh_CN.UTF-8

export _JAVA_OPTIONS="-Dfile.encoding=UTF-8"
export JAVA_OPTS="-Dfile.encoding=UTF-8"
export JAVA_TOOLS_OPTIONS="-Dfile.encoding=UTF-8"
export MAVEN_OPTS="-Dfile.encoding=UTF-8"

export VAGRANT_PREFER_SYSTEM_BIN=1

# +---------+
# | ALIASES |
# +---------+

source $DOTFILES/aliases/aliases


# +-----------+
# | SSH_AGENT |
# +-----------+

env=/tmp/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
    (umask 077; ssh-agent >| "$env")
    . "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
    agent_start
    ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add
fi

unset env

# +-----+
# | VIM |
# +-----+

# Vi mode
bindkey -v
export KEYTIMEOUT=1

# +--------+
# | PROMPT |
# +--------+

export PROMPT='%F{blue}(%n)%f %~ %# '

# +-----------------+
# | auto-suggestion |
# +-----------------+
source $DOTFILES/zsh/plugins/autosuggestions/zsh-autosuggestions.zsh

