summaryrefslogtreecommitdiff
path: root/zsh/.zshrc
blob: 00be912951d4cd2b2dc4b2e149e2aaa9c571b770 (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
HISTFILE="$ZDOTDIR"/hist
SAVEHIST=1000
HISTSIZE=1000
setopt APPEND_HISTORY
setopt HIST_FIND_NO_DUPS
setopt HIST_EXPIRE_DUPS_FIRST
setopt HIST_VERIFY
setopt HIST_IGNORE_DUPS
setopt INC_APPEND_HISTORY
setopt HIST_REDUCE_BLANKS

_SH="zsh"

if [ -f "$XDG_CONFIG_HOME"/sh/aliases ]; then
	source "$XDG_CONFIG_HOME"/sh/aliases
fi
if [ -f "$XDG_CONFIG_HOME"/sh/functions ]; then
	source "$XDG_CONFIG_HOME"/sh/functions
fi

if [ -n "$ZDOTDIR"/.zshrc -a -f "$ZDOTDIR"/.zshrc ]; then
  alias e='source "$ZDOTDIR"/.zshrc'
elif [ -f "$HOME"/.zshrc ]; then
  alias e='source ~/.zshrc'
fi

bindkey "^?" backward-delete-char

# bindkey -v

if [ "$TERM" = "st-256color" ] || [ "$TERM" = "xterm-256color" ]; then
  function zle-line-init () { echoti smkx }
  function zle-line-finish () { echoti rmkx }

  zle -N zle-line-init
  zle -N zle-line-finish
fi

unset COLOR1
ZSHTHEMERC="${ZDOTDIR:-$HOME}/.zsh_theme"
[ -f "$ZSHTHEMERC" ] && . "$ZSHTHEMERC"

if [ -z "$COLOR1" ]; then
  case "$(whoami)" in
    zachir) COLOR1="014" ;;
    git) COLOR1="013" ;;
    subsonic) COLOR1="012" ;;
    *) COLOR1="015" ;;
  esac
fi

MYPROMPT='%B%S%F{'"$COLOR1"'}[%n@%m]:%f%s%F{015}%~%f%S%F{'"$COLOR1"'}%#%f%s%b '
function zle-line-init zle-keymap-select {
	VIM_PROMPT="%B%F{012}[%n@%m]:%f%F{015}%~%f%F{012}%#%f%b "
	PS1="${${KEYMAP/vicmd/$VIM_PROMPT}/main/$MYPROMPT}"
	#PS1="$PROMPT $KEYMAP"
	zle reset-prompt
}

unset COLOR1

zle -N zle-line-init
zle -N zle-keymap-select
export KEYTIMEOUT=1

fpath+="$ZDOTDIR/zfunc"

autoload -Uz compinit promptinit
compinit -d $CONFIG/zcompdump
promptinit
autoload -Uz up-line-or-beginning-search down-line-or-beginning-search
zle -N up-line-or-beginning-search
zle -N down-line-or-beginning-search

zstyle ':completion:*' menu select
zstyle ':completion::complete:*' gain-privileges 1
zstyle ':completion:*' rehash true

setopt COMPLETE_ALIASES
setopt AUTO_CD

typeset -g -A key

key[Up]="${terminfo[kcuu1]}"
key[Down]="${terminfo[kcud1]}"
key[Left]="${terminfo[kcub1]}"
key[Right]="${terminfo[kcuf1]}"
key[Shift-Tab]="${terminfo[kcbt]}"
key[Delete]="${terminfo[kdch1]}"

[[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}"                up-line-or-beginning-search
bindkey -- '^[[A'                                               up-line-or-beginning-search
bindkey -- '^[[B'                                               down-line-or-beginning-search
[[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}"            down-line-or-beginning-search
[[ -n "${key[Left]}" ]] && bindkey -- "${key[Left]}"            backward-char
[[ -n "${key[Right]}" ]] && bindkey -- "${key[Right]}"          forward-char
[[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}"  reverse-menu-complete
[[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}"        delete-char