X-Git-Url: http://www.git.stargrave.org/?p=dotfiles.git;a=blobdiff_plain;f=zsh%2F.zshrc;h=0a18bb0288764271526a46dede629a7c5165c7a0;hp=45b63a6de76f8a8300b05f9f672c723e11c37885;hb=HEAD;hpb=1de3d4b7a55b2628eeccb0dd704c554bf8aee63e diff --git a/zsh/.zshrc b/zsh/.zshrc index 45b63a6..55c0ce1 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -1,222 +1 @@ -# vim: foldmethod=marker:foldlevel=0 - -# Basic options {{{ -setopt INTERACTIVE_COMMENTS -setopt GLOB_STAR_SHORT GLOB_DOTS EXTENDED_GLOB -setopt NO_NOMATCH -setopt AUTO_PUSHD PUSHD_IGNORE_DUPS -setopt PIPE_FAIL - -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 -bindkey "^[[4~" end-of-line -# }}} - -# 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 { - mode_vi=${${KEYMAP/vicmd/+}/(main|viins)/-} - [[ $timer ]] && timer_show=$(( $SECONDS - $timer )) - prompt="%2~|" - prompt+="%U${timer_show}%u|" - prompt+="%B%?%b" - prompt+="${mode_vi}" - prompt+="%B%F{magenta}%#%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 -AFl " -alias ssh="TERM=xterm ssh" -alias vi="vim" -alias more="less" -alias m="less " -alias -g M="| less" -alias -g W="| wc -l | sed 's/ //g'" -alias mc="mc --nomouse" -alias sent="mutt -f =sent-\`date '+%y-%m'\`" - -f() { - # find . -name "*$1*" -print - print -C 1 **$1* -} - -ssht() { - ssh -C -t $1 tmux attach -t0 -} -alias sshnm="ssh -S none" -# }}} - -# Faster movement {{{ -cddotdot() { - cd .. - pwd - zle reset-prompt -} -zle -N cddotdot -bindkey "OQ" cddotdot # F2 - -pushdquiet() { - popd - zle reset-prompt -} -zle -N pushdquiet -bindkey "OS" pushdquiet # 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" -alias Gam="git commit --amend" - -alias Gl="git log --oneline --graph --decorate=short" -alias Gld="git log --format=format:'%ai %Cgreen%h%Creset %s'" -alias Gr="git --no-pager log --oneline -n 20 | perl -ne 'print \"@~\$n \$_\"; \$n++'" -alias Grr="git --no-pager log --oneline --graph -n 1024 | vi -c 'setlocal filetype=gitrebase buftype=nofile noswapfile' -" - -bindkey -s "OR" " git status --short\n" # F3 -# }}} - -# grep {{{ -GREP=/usr/local/bin/grep -GREP_ARGS="--color=always --with-filename --line-number --dereference-recursive" -LESS_COLORED="less --RAW-CONTROL-CHARS" -g() { - $GREP ${=GREP_ARGS} $@ | ${=LESS_COLORED} -} -GS() { - $GREP ${=GREP_ARGS} $@ | sort --numeric-sort | ${=LESS_COLORED} -} -alias -g G="| $GREP --color" -alias gg="git grep " -# }}} - -# GPG agent {{{ -GPG_TTY=$(tty) -export GPG_TTY -# }}} - -# Virtualenv {{{ -venv() { - . /usr/local/bin/virtualenvwrapper.sh -} -# }}} - -# 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'" -bindkey -s "OP" " inc\n" # F1 -# }}} - -# Completion {{{ -zstyle ":completion:*:functions" ignored-patterns "_*" -zstyle ":completion:*" matcher-list "" 'm:{a-z\-}={A-Z\_}' 'r:|?=** m:{a-z\-}={A-Z\_}' -_mycomp () { - [[ ${words[1]} != man ]] || { _man && return 0 } - [[ $CURRENT -eq 1 ]] && _command_names || _files && return 0 - # MAGIC_EQUAL_SUBST {{{ - [[ $PREFIX = *\=* ]] || return 1 - compstate[parameter]=${PREFIX%%\=*} - compset -P 1 "*=" - _value - # }}} -} -zstyle ":completion:*" completer _mycomp _parameters -autoload -U compinit ; compinit -d /tmp/.zcompdump -zstyle ":completion:*:default" list-colors "" -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 {{{ -export FZF_DEFAULT_OPTS="--color=16 --info=inline" -cf() { - local dir=$(find ${1:-.} -mindepth 1 -path "*/\.git" -prune -o -type d -print | - fzf --height 40% --reverse --preview="tree -CN {}") - [[ -z $dir ]] || cd $dir -} -# }}} - -# Named directories {{{ -while read w ; do - w=(${(s/=/)w}) - hash -d ${w[1]}=${~${w[2]}} -done < ~/.zhashd -# }}} +for z (~/.zsh/rc/*(on)) . $z