]> git.friedersdorff.com Git - max/saltfiles.git/blobdiff - states/zsh/files/zshrc
Improvements
[max/saltfiles.git] / states / zsh / files / zshrc
index 365ca41e9a7b52bfbb650d4aa6e14bd29a49e84b..ca4c33c013f7411f3d5f033b0fd047efcbc4eeb1 100644 (file)
@@ -8,7 +8,7 @@ zstyle ':completion:*' ignore-parents parent pwd
 zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
 zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
 zstyle ':completion:*' list-suffixes true
-zstyle ':completion:*' max-errors 2
+zstyle ':completion:*' max-errors 1
 zstyle ':completion:*' menu select=1
 zstyle ':completion:*' preserve-prefix '//[^/]##/'
 zstyle ':completion:*' prompt 'Corrections with %e differences:'
@@ -21,50 +21,71 @@ compinit
 # End of lines added by compinstall
 # Lines configured by zsh-newuser-install
 HISTFILE=~/.histfile
-HISTSIZE=20000
-SAVEHIST=20000
-setopt appendhistory autocd extendedglob nomatch
+HISTSIZE=100000
+SAVEHIST=100000
+setopt appendhistory autocd extendedglob nomatch extendedhistory
 unsetopt beep notify
 bindkey -v
 # End of lines configured by zsh-newuser-install
 
-
-git_prompt() {
-       ref=$(git symbolic-ref HEAD | cut -d'/' -f3-)
-       echo $ref
-}
-
+# Prompt
 NEWLINE=$'\n'
 setopt prompt_subst
-autoload -Uz vcs_info
-zstyle ':vcs_info:*' actionformats \
-    "%F{5}[%f%b%F{3}|%F{1}%a%F{5}]%f${NEWLINE}"
-zstyle ':vcs_info:*' formats       \
-    "%F{5}[%f%b%F{5}]%f${NEWLINE}"
 
-zstyle ':vcs_info:*' enable git
 
-# or use pre_cmd, see man zshcontrib
-precmd() {
-       vcs_info
-       if [[ -n ${vcs_info_msg_0_} ]]; then
-               echo
+p="%(?;%F{green};%F{red})[%h]%f "
+p+="%F{red}%B%n%b%f@%F{red}%B%m%b%f"
+p+=":%F{blue}%~%f"
+p+="${NEWLINE}%(!.#.$) "
+
+virtual_env() {
+       if [ -n "${VIRTUAL_ENV+1}" ]; then
+               home_rel_path=$(echo ${VIRTUAL_ENV} | sed "s;^${HOME};~;")
+               echo -n "(${home_rel_path}) "
        fi
 }
 
-prompt='$vcs_info_msg_0_'
-prompt+="%(?;%F{green};%F{red})[%h]%f "
-prompt+="%F{red}%B%n%b%f@%F{red}%B%m%b%f"
-prompt+=":%F{blue}%~%f"
-prompt+="${NEWLINE}%(!.#.$) "
+source ~/.git-prompt.sh
+precmd () {
+       __git_ps1 "" "$(virtual_env)${p}" "${NEWLINE}[%s]${NEWLINE}"
+}
 
-if ! pgrep -x -u "${USER}" gpg-agent >/dev/null 2>&1; then
-  gpg-connect-agent /bye >/dev/null 2>&1
-fi
+bindkey '^R' history-incremental-search-backward
 
-unset SSH_AGENT_PID
-if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
-  export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
+if [[ -f ~/.shell_aliases ]]; then
+       source ~/.shell_aliases
 fi
 
-gpg-connect-agent updatestartuptty /bye > /dev/null
+export WORKON_HOME=~/.virtualenvs
+source /usr/bin/virtualenvwrapper_lazy.sh
+
+chpwd() {
+    src_dir="$(readlink -f ~/src/)/"
+    if [[ $PWD == "$src_dir"* ]]; then
+        if git status &>/dev/null; then
+            venv_name=$(basename $(git rev-parse --show-toplevel))
+            if [[ -n "$VIRTUAL_ENV" ]]; then
+                current_venv_name=$(basename "$VIRTUAL_ENV")
+                if [[ "$current_venv_name" != "$venv_name" ]]; then
+                    deactivate
+                    workon "$venv_name"
+                fi
+            else
+                if workon | grep -q "$venv_name"; then
+                    workon "$venv_name"
+                fi
+            fi
+        else
+            if [[ -n "$VIRTUAL_ENV" ]]; then
+                deactivate
+            fi
+        fi
+    else
+        if [[ -n "$VIRTUAL_ENV" ]]; then
+            deactivate
+        fi
+    fi
+}
+
+export GPG_TTY=$(tty)
+gpg-connect-agent updatestartuptty /bye >/dev/null