summaryrefslogtreecommitdiffstats
path: root/.zshrc
blob: 2cf11ddcf154d4226e375a27004309e2c319d5fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# -*- Mode: shell-script; -*-
autoload -Uz add-zsh-hook
autoload -Uz compinit
autoload -U colors
autoload -Uz vcs_info

# Autoload zsh functions.
fpath=($HOME/.zsh/functions $fpath)
autoload -U $HOME/.zsh/functions/*(:t)

# Setup variables
HISTFILE=$HOME/.zsh/histfile
HISTSIZE=1000
SAVEHIST=1000

export LESS="iFXRS"
export LESS_TERMCAP_mb=$'\e[1;37m'
export LESS_TERMCAP_md=$'\e[1;37m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\e[1;47;30m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[0;36m'
export PAGER="less"

# Aliases
alias alpine="alpine -p ""{imap.gmail.com/ssl/user=tom.willemsen@archlinux.us}remote_pinerc"""
alias evolus-pencil="/usr/lib/evolus-pencil-svn/evolus-pencil.sh"
alias grep="grep --color=always"
alias ls="ls -F --color=always"
alias mysql="mysql --pager"
alias sbcl="rlwrap sbcl"

# Suffix aliases
alias -s pdf="zathura"
alias -s xls="libreoffice"

setopt AUTO_CD
setopt AUTO_PUSHD
setopt CORRECT
setopt EXTENDED_GLOB
setopt NOTIFY
setopt PROMPT_SUBST             # Allow for functions in the prompt
setopt HIST_IGNORE_ALL_DUPS     # Don't story any duplicate commands

zstyle :compinstall filename '$HOME/.zshrc'

# Enable auto-execution of functions
typeset -ga preexec_functions
typeset -ga precmd_functions
typeset -ga chpwd_functions

add-zsh-hook precmd vcs_info

zstyle ':vcs_info:*' actionformats '%B%F{1}%a%f%%b (%F{3}%s%f) %F{5}%r%f:%F{4}%b%f %F{2}%S%f'
zstyle ':vcs_info:*' enable bzr git hg svn
zstyle ':vcs_info:*' formats '(%F{3}%s%f) %F{5}%r%f:%F{4}%b%f %F{2}%S%f'
zstyle ':vcs_info:*' nvcsformats '%F{2}%~%f'
zstyle ':vcs_info:bzr:*' branchformat '%b'

# Set the prompt.
PROMPT='${vcs_info_msg_0_}
%B%F{6}%m%b%f %B%(?.%F{2}+.%F{1}-)%b> '

# Set terminal name to current running application
case $TERM in
    rxvt*)
        precmd () { print -Pn "\e]0;%~\a" }
        preexec () { print -Pn "\e]0;$1\a" }
        ;;
    eterm-color*)
        # Make {{ansi,multi}-,}term change Emacs' `default-directory'
        # and keep track of the current user and host.
        precmd () { print -P "\eAnSiTu %n\n\eAnSiTc %~" }
        ;;
esac

export XDG_CACHE_HOME="$HOME/.cache"
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"

zle -N emacs-backward-kill-word
zle -N insert-sudo

# Set terminal keys
bindkey "\e[1~"  beginning-of-line
bindkey "\e[4~"  end-of-line
bindkey "\e[5~"  beginning-of-history
bindkey "\e[6~"  end-of-history
bindkey "\e[3~"  delete-char
bindkey "\e[2~"  quoted-insert
bindkey "\e[5C"  forward-word
bindkey "\e0c"   emacs-forward-word
bindkey "\e[5D"  backward-word
bindkey "\e0d"   emacs-backward-word
bindkey "\e\e[C" forward-word
bindkey "\e\e[D" backward-word
## for rxvt
bindkey "\e[8~"  end-of-line
bindkey "\e[7~"  beginning-of-line
## for non RH/Debian xterm, can't hurt for RH/Debian xterm
bindkey "\e0H"   beginning-of-line
bindkey "\e0F"   end-of-line
## for freebsd console
bindkey "\e[H"   beginning-of-line
bindkey "\e[F"   end-of-line

bindkey "^W" backward-delete-char
bindkey "^\b" emacs-backward-kill-word
bindkey "^[#" insert-sudo

source /usr/share/zsh/scripts/antigen/antigen.zsh
antigen bundle zsh-users/zsh-syntax-highlighting

# Show syntax highlighting when we're not running in emacs
if [ -z $EMACS ]; then
    # source $HOME/.zsh/syntax-highlighting/zsh-syntax-highlighting.zsh

    ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets)

    ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red'
    ZSH_HIGHLIGHT_STYLES[builtin]='fg=cyan'
    ZSH_HIGHLIGHT_STYLES[function]='fg=blue'
    ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=blue'
    ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=blue'
    ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=cyan'
    ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=cyan'
    ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=cyan'
    ZSH_HIGHLIGHT_STYLES[assign]='fg=yellow'

    ZSH_HIGHLIGHT_STYLES[bracket-level-1]='fg=red'
    ZSH_HIGHLIGHT_STYLES[bracket-level-2]='fg=yellow'
    ZSH_HIGHLIGHT_STYLES[bracket-level-3]='fg=green'
    ZSH_HIGHLIGHT_STYLES[bracket-level-4]='fg=cyan'
    ZSH_HIGHLIGHT_STYLES[bracket-level-5]='fg=blue'
    ZSH_HIGHLIGHT_STYLES[bracket-level-6]='fg=magenta'
fi

compinit
colors                          # Initialize colors.