# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=2000
SAVEHIST=2000

#Дописывание файла истории
setopt appendhistory
#Игнорировать повторения команд
setopt  HIST_IGNORE_ALL_DUPS
#Игнорировать лишние пробелы
setopt  HIST_IGNORE_SPACE
#Удалять пустые строки
setopt  HIST_REDUCE_BLANKS
#Не пищим при дополнении и ошибках
unsetopt beep
#Перейти в директорию, если набрали путь без команды cd
setopt AUTO_CD

# setopt CORRECT_ALL
# Вопрос на автокоррекцию
# SPROMPT='zsh: Исправить '\''%R'\'' на '\''%r'\'' ? [Yes/No/Abort/Edit] '

setopt   notify pushdtohome cdablevars autolist # correct globdots
setopt   recexact longlistjobs
setopt   autoresume histignoredups pushdsilent noclobber
setopt   autopushd pushdminus rcquotes mailwarning
setopt   no_bare_glob_qual no_extended_glob

# End of lines configured by zsh-newuser-install
# The following lines were added by compinstall
zstyle :compinstall filename '/home/kressh//.zshrc'
bindkey -e
autoload -U zcalc
autoload -Uz compinit
compinit
zmodload -a zsh/stat stat
zmodload -a zsh/zpty zpty
zmodload -a zsh/zprof zprof
zmodload -ap zsh/mapfile mapfile

zstyle ':completion:*' menu no
# End of lines added by compinstall

PS1="$(print '%{\e[1;32m%}%n@%m%{\e[0m%}') $(print '%{\e[1;36m%}%T%{\e[0m%}') $(print '%{\e[1;34m%}%~') $(print '%{\e[1;34m%}%(!.#.$) %{\e[0m%}')"
PS2="$(print '%{\e[1;34m%}>%{\e[0m%}')"
# RPROMPT="$(print '%{\e[1;36m%}[%T]%{\e[0m%}') %y%b"

eval `dircolors`

zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
export GREP_COLOR='1;32'

## key binds Pgup pgdown, home, end
bindkey "^[[2~" yank
bindkey "^[[3~" delete-char
bindkey "^[[5~" up-line-or-history
bindkey "^[[6~" down-line-or-history
bindkey "^[[7~" beginning-of-line
bindkey "^[[8~" end-of-line
bindkey "^[e" expand-cmd-path ## C-e for expanding path of typed command
bindkey "^[[A" up-line-or-search ## up arrow for back-history-search
bindkey "^[[B" down-line-or-search ## down arrow for fwd-history-search
bindkey " " magic-space ## do history expansion on space

# для kill и killall
zstyle ':completion:*:processes' command 'ps -xuf'
zstyle ':completion:*:processes' sort false
zstyle ':completion:*:processes-names' command 'ps xho command'

limit stack 8192 # лимит объёма памяти, выделеной под стек, дабы не переполнялся
limit core 0  # Выключаем запись дампов упавших в корку программ
umask 022   # Установка атрибутов доступа создаваемых файлов


autoload -U pick-web-browser
alias -s {html,htm,mht}=pick-web-browser

export LESS="-R"
export PAGER="less"

unsetopt nomatch

# Установка нормального поведения клавиш Delete, Home, End и т.д. Запустится программка, которая попросит Вас поочередно нажимать клавиши, которые она будет запоминать. После появится каталог ~/.zkbd, в котором должен появится файлик xterm. Должен, но появится там файлик с несколько другим именем, поэтому ручками его переименовываем в xterm.

# autoload zkbd
# [[ ! -d ~/.zkbd ]] && mkdir ~/.zkbd
# [[ -f ~/.zkbd/$TERM ]] && source ~/.zkbd/$TERM
# [[ ! -f ~/.zkbd/$TERM ]] && zkbd

[[ -n ${key[Backspace]} ]] && bindkey "${key[Backspace]}" backward-delete-char
[[ -n ${key[Insert]} ]] && bindkey "${key[Insert]}" overwrite-mode
[[ -n ${key[Home]} ]] && bindkey "${key[Home]}" beginning-of-line
[[ -n ${key[PageUp]} ]] && bindkey "${key[PageUp]}" up-line-or-history
[[ -n ${key[Delete]} ]] && bindkey "${key[Delete]}" delete-char
[[ -n ${key[End]} ]] && bindkey "${key[End]}" end-of-line
[[ -n ${key[PageDown]} ]] && bindkey "${key[PageDown]}" down-line-or-history
[[ -n ${key[Up]} ]] && bindkey "${key[Up]}" up-line-or-search
[[ -n ${key[Left]} ]] && bindkey "${key[Left]}" backward-char
[[ -n ${key[Down]} ]] && bindkey "${key[Down]}" down-line-or-search
[[ -n ${key[Right]} ]] && bindkey "${key[Right]}" forward-char


# SSH – автозаполнение хостов, юзеров. Пробелов между %% быть не должно.
# hosts=(${${${(f)"$(<$HOME/.ssh/known_hosts)"}%%\*}%%,*})
zstyle ':completion:*:hosts' hosts $hosts
zstyle ':completion:*:(ssh|scp):*' tag-order '! users'

# Отображение в заголовке окна терминала информации о номере консоли, пути и выполняемой команде
precmd()
{
[[ -t 1 ]] || return
case $TERM in
*xterm*|rxvt|(dt|k|E)term*) print -Pn "\e]2;[%~] :: %l\a"
;;
esac
}
preexec() {
[[ -t 1 ]] || return
case $TERM in
*xterm*|rxvt|(dt|k|E)term*) print -Pn "\e]2;<$1> [%~] :: %l\a"
;;
esac
}

# shopt -s extglob; if [[ -z $DISPLAY ]] && ! pgrep X &>/dev/null; then tput setaf 3; tput bold; read -t 5 -p 'Start X? [Y/n] '; tput sgr0; [[ -z $REPLY || $REPLY = [Yy]?([Ee][Ss]) ]] && startx; fi

# Load all files from .shell/zshrc.d directory
if [ -d $HOME/.zshrc.d ]; then
  for file in $HOME/.zshrc.d/*.zsh; do
    source $file
  done
fi
[ -f /home/krsh/.config/cani/completions/_cani.zsh ] && source /home/krsh/.config/cani/completions/_cani.zsh