X-Git-Url: http://www.git.stargrave.org/?p=dotfiles.git;a=blobdiff_plain;f=zsh%2F.zshrc;h=55c0ce110ab829e4724f93f65cd97fdc9f938db9;hp=c11f4224dc0036ed4672cfb21d3d7b9a1fa15063;hb=HEAD;hpb=3597dd0641849a312e939cbf55e56e3f2a7b4100 diff --git a/zsh/.zshrc b/zsh/.zshrc index c11f422..55c0ce1 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -1,268 +1 @@ -# vim: foldmethod=marker:foldlevel=0 - -# Basic options {{{ -setopt GLOB_STAR_SHORT GLOB_DOTS EXTENDED_GLOB -setopt NO_NOMATCH -setopt AUTO_PUSHD PUSHD_IGNORE_DUPS -setopt PIPE_FAIL -setopt MULTIBYTE - -setopt RM_STAR_SILENT -export LISTMAX=9999 -# }}} - -# History options {{{ -setopt APPEND_HISTORY SHARE_HISTORY INC_APPEND_HISTORY HIST_IGNORE_ALL_DUPS -setopt HIST_IGNORE_SPACE -HISTORY_IGNORE="(yt* *|t *|t|sdcv *|mmfileget *|arr)" -# }}} - -# Vi mode {{{ -bindkey -v -export KEYTIMEOUT=1 -# }}} - -# Home/end {{{ -bindkey "^[[1~" beginning-of-line # Home -bindkey "^[[4~" end-of-line # End -# }}} - -# Command-line editing {{{ -autoload -U edit-command-line -zle -N edit-command-line -bindkey -M vicmd v edit-command-line -# }}} - -# History search {{{ -autoload -U history-search-end -zle -N history-beginning-search-backward-end history-search-end -zle -N history-beginning-search-forward-end history-search-end -bindkey "^[[A" history-beginning-search-backward-end -bindkey "^[[B" history-beginning-search-forward-end - -beginning-history-incremental-pattern-search-backward() { - zle history-incremental-pattern-search-backward ${BUFFER:gs/ /*/} -} -zle -N beginning-history-incremental-pattern-search-backward -bindkey "^[[1;2A" beginning-history-incremental-pattern-search-backward -bindkey -M isearch "^[[A" history-incremental-pattern-search-backward -bindkey -M isearch "^[[B" history-incremental-pattern-search-forward -# }}} - -# Prompt {{{ -function zle-line-init zle-keymap-select { - local state="%#" timer_val="?" - [[ ${KEYMAP} == vicmd ]] && state="+" - [[ $timer ]] && timer_val=$(( $SECONDS - $timer )) - prompt="%2~ " - prompt+="%U${timer_val}%u|" - prompt+="%B%?%b" - prompt+="%B%F{magenta}${state}%f%b " - PS1=$prompt - zle reset-prompt -} -zle -N zle-line-init -zle -N zle-keymap-select - -preexec() { - timer=$SECONDS -} - -precmd() { - printf "\a\033]2;\033\\" -} -# }}} - -# Aliases {{{ -alias l="ls -AF " -alias ll="ls -D \"%Y-%m-%d %H:%M\" -AFl " -alias vi="vim" -alias m="less " -alias -g M="| less" -alias -g W="| wc -l | sed 's/ //g'" -alias -g T="| tai64nlocal" -alias -g DN=">/dev/null" -alias -g 2DN="2>/dev/null" -alias -g DNA=">&/dev/null" -alias mc="mc --nomouse" - -f() { - bfs . -name "*$1*" -print -} - -alias ssh="TERM=xterm ssh" -alias sshnm="ssh -S none" -ssht() { - local t="-t 0" - TERM=xterm ssh -C -t $1 "tmux has-session $t && tmux attach-session $t || tmux new-session $t" -} - -autoload -U zsh-mime-setup ; zsh-mime-setup -alias -s html=lynx - -autoload -U zmv -# }}} - -# Faster movement {{{ -cddotdot() { - cd .. - pwd - zle reset-prompt -} -zle -N cddotdot -bindkey "OQ" cddotdot # F2 - -popdquiet() { - popd - zle reset-prompt -} -zle -N popdquiet -bindkey "OS" popdquiet # F4 -# }}} - -# Git {{{ -alias Ga="git add" -alias Gb="git branch" -alias Gc="git checkout" -alias Gd="git diff" -alias Gdc="git diff --cached" -alias Gs="git show --show-signature" -alias Gm="git diff --name-only --diff-filter=M --relative" -alias Gam="git commit --amend" -alias Gl="git log --oneline --graph --decorate=short" -alias Gld="git log --format=format:'%ai %Cgreen%h%Creset %s'" - -bindkey -s "OR" " git status --short\n" # F3 -# }}} - -# grep {{{ -GREP_ARGS=( - --devices=skip - --colour=always - --with-filename - --line-number - --dereference-recursive - --binary-files=without-match - --exclude-dir=.git - --exclude-dir=.tags -) -g() { - grep $GREP_ARGS $@ | less -} -alias -g G="| grep --colour=always" -alias gg="git grep " -# }}} - -# GPG agent {{{ -export GPG_TTY=$(tty) -# }}} - -# Mail {{{ -mailpath=( - ~/mail/mbox"?Neue Nachrichten in =mbox" - ~/mail/arbeit"?Neue Nachrichten in =arbeit" -) -alias arr="mutt -f =arbeit -e 'source ~/.mutt/accounts/stcnet.ru'" -alias sent="mutt -f =sent-\`date '+%y-%m'\`" -bindkey -s "OP" " inc\n" # F1 -# }}} - -# Completion {{{ -zstyle ":completion:*" list-colors "" - -zstyle ":completion:*:functions" ignored-patterns "_*" -zstyle ":completion:*:manuals" separate-sections true - -zstyle ":completion:*" group-name "" -zstyle ":completion:*:messages" format "%d" -zstyle ":completion:*:warnings" format "%F{red}no matches: %d%f" -zstyle ":completion:*:*:*:*:descriptions" format "%B... %d%b" -zstyle ":completion:*:files:*:*:descriptions" format "" - -zstyle ":completion:*" file-patterns "%p:globbed" "*" -zstyle ":completion:*" matcher-list "" "m:{a-z-}={A-Z_}" "r:|?=** m:{a-z-}={A-Z_}" -zstyle ":completion:*:man:*:*:*" matcher-list "" "m:{a-zA-Z}={A-Za-z} l:|=* r:|=*" -zstyle ":completion:*" completer _mycomp _mycomp_man:man _parameters _ignored - -_mycomp () { - [[ $CURRENT -eq 1 ]] && curcontext="${curcontext%:*:*}:-command-:" \ - _command_names && return - [[ $IPREFIX =~ ~.* ]] && _tilde && return - local has_files - curcontext=:files:${curcontext#:*:} _files && has_files=1 - [[ $has_files ]] && return - - # MAGIC_EQUAL_SUBST {{{ - [[ $PREFIX = *\=* ]] || return 1 - compstate[parameter]=${PREFIX%%\=*} - compset -P 1 "*=" - _value - # }}} -} - -_mycomp_man () { - [[ ${words[1]} == man ]] && curcontext=:man:${curcontext#:*:} \ - _dispatch "" man man "" -default- && _value && return - [[ ${words[1]} == info ]] && curcontext=:info:${curcontext#:*:} \ - _dispatch "" info info "" -default- && return -} - -autoload -U compinit ; compinit -d /tmp/.zcompdump -autoload -U complist -# }}} - -# Highlighting {{{ -ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets) -. ~/work/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh -typeset -A ZSH_HIGHLIGHT_STYLES -ZSH_HIGHLIGHT_STYLES[assign]="fg=yellow" -ZSH_HIGHLIGHT_STYLES[commandseparator]="fg=red" -ZSH_HIGHLIGHT_STYLES[single-hyphen-option]="fg=green,bold" -ZSH_HIGHLIGHT_STYLES[double-hyphen-option]="fg=green" -ZSH_HIGHLIGHT_STYLES[globbing]="fg=magenta" -ZSH_HIGHLIGHT_STYLES[global-alias]="fg=yellow,bold" -ZSH_HIGHLIGHT_STYLES[history-expansion]="fg=magenta" -ZSH_HIGHLIGHT_STYLES[redirection]="fg=red" -ZSH_HIGHLIGHT_STYLES[path]="fg=white,underline" -ZSH_HIGHLIGHT_STYLES[path_pathseparator]="fg=white,bold,underline" -# }}} - -# Autosuggestion {{{ -. ~/work/zsh-autosuggestions/zsh-autosuggestions.zsh -ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=cyan" -# }}} - -# fzf {{{ -cf() { - local dir=$(bfs -L ${1:-.} -mindepth 1 \ - -path "*/\.git" -prune -o \ - -path "*/\.redo" -prune -o \ - -type d -print 2>/dev/null | - fzf --height 40% --reverse --preview="tree -CN {}") - [[ -z $dir ]] || { print -s cd $dir ; cd $dir } -} -# }}} - -# Named directories {{{ -while read w ; do - w=(${(s/=/)w}) - hash -d ${w[1]}=${~${w[2]}} -done < ~/.zhashd -# }}} - -# Midnight commander extensions configuration {{{ -[ -s $XDG_CONFIG_HOME/mc/mc.ext ] || { - mkdir $XDG_CONFIG_HOME/mc/ - cp ~dot/mc/mc.ext $XDG_CONFIG_HOME/mc/ -} -# }}} - -# Virtualenv {{{ -venv() { - . /usr/local/bin/virtualenvwrapper.sh -} -# }}} - -# autoenv {{{ -. ~/work/zsh-autoenv/autoenv.zsh -# }}} +for z (~/.zsh/rc/*(on)) . $z