]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - zsh/rc
New function source_debug().
[config/dotfiles.git] / zsh / rc
diff --git a/zsh/rc b/zsh/rc
index d627a083ae66ae51e72aa3361a91a448d7def2fb..69b19df10d66861c06dec31627b7b4e4e9203874 100644 (file)
--- a/zsh/rc
+++ b/zsh/rc
@@ -31,11 +31,21 @@ setopt extendedglob
 setopt ignoreeof
 
 
+# FUNCTION SETTINGS
+
+# Set correct fpath to allow loading my functions (including completion
+# functions).
+fpath=(~/.zsh/functions $fpath)
+# Autoload my functions (except completion functions and hidden files). Thanks
+# to caphuso from the Zsh example files for this idea.
+autoload ${fpath[1]}/^_*(:t)
+
+
 # HISTORY SETTINGS
 
 # Use history and store it in ~/.zsh/history.
-HISTSIZE=1000
-SAVEHIST=1000
+HISTSIZE=5000
+SAVEHIST=5000
 HISTFILE=~/.zsh/history
 # Append to the history file instead of overwriting it and do it immediately
 # when a command is executed.
@@ -80,11 +90,11 @@ if [[ $ZSH_VERSION == (4.3.<9->|4.<4->*|<5->*) ]]; then
     # it's also displayed (red).
     zstyle ':vcs_info:*' formats \
     "(%{${fg[green]}%}%b%{${fg[default]}%}:\
-    %{${fg[blue]}%}%s%{${fg[default]}%})"
+%{${fg[blue]}%}%s%{${fg[default]}%})"
     zstyle ':vcs_info:*' actionformats \
     "(%{${fg[green]}%}%b%{${fg[default]}%}/\
-    %{${fg[red]}%}%a%{${fg[default]}%}:\
-    %{${fg[blue]}%}%s%{${fg[default]}%})"
+%{${fg[red]}%}%a%{${fg[default]}%}:\
+%{${fg[blue]}%}%s%{${fg[default]}%})"
     # Call vcs_info as precmd before every prompt.
     prompt_precmd() {
         vcs_info
@@ -106,8 +116,14 @@ if [[ $TERM == screen ]]; then
     screen_name_reset=yes
 
     screen_preexec() {
-        # Get the application name excluding any arguments.
-        local program_name=${1%% *}
+        # Get the program name with its arguments.
+        local program_name=$1
+        # When sudo is used use real program name instead.
+        if [[ $program_name == sudo* ]]; then
+            program_name=${program_name#sudo }
+        fi
+        # Remove all arguments from the program name.
+        program_name=${program_name%% *}
 
         # Ignore often used commands which are only running for a very short
         # time. This prevents a "blinking" name when it's changed to "cd" for
@@ -156,11 +172,12 @@ fi
 
 # COMPLETION SETTINGS
 
-# Use new completion system.
-autoload -U compinit && compinit
 # Load the complist module which provides additions to completion lists
 # (coloring, scrollable).
 zmodload zsh/complist
+# Use new completion system, store dumpfile in ~/.zsh/cache to prevent
+# cluttering of ~/.
+autoload -U compinit && compinit -d ~/.zsh/cache/zcompdump
 # Make sure the list of possible completions is displayed after pressing <TAB>
 # the first time.
 setopt nolistambiguous
@@ -190,7 +207,7 @@ zstyle ':completion:*:unset:*' ignore-line yes
 zstyle ':completion:*:(hg|git)*:*' ignore-line yes
 
 
-# ALIAS AND FUNCTION SETTINGS
+# CUSTOM ALIASES AND FUNCTIONS
 
 # Simplify calls to less, automatically redirects all output.
 alias -g L='2>&1 | less'
@@ -205,8 +222,10 @@ alias diff='diff -u'
 # Display all files and use human readable sizes.
 alias du='du -sh'
 
-# Multiple files given to Vim are opened in tabs.
-alias vim='vim -p'
+# Multiple files given to Vim are opened in tabs, supported since Vim 7.
+if [[ ${${${(f)"$(vim --version)"}[1]#VIM - Vi IMproved }%% *} == 7* ]]; then
+    alias vim='vim -p'
+fi
 
 # Shortcuts for often used programs.
 alias e='elinks'