]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - zsh/rc
Add more debug output.
[config/dotfiles.git] / zsh / rc
diff --git a/zsh/rc b/zsh/rc
index d627a083ae66ae51e72aa3361a91a448d7def2fb..a7d62cc484ec6f6dec29cff93fe61e9081d4e817 100644 (file)
--- a/zsh/rc
+++ b/zsh/rc
@@ -1,6 +1,8 @@
 # Zsh configuration file.
 
 
+source_debug "sourcing ~/.zsh/rc"
+
 # MISCELLANEOUS SETTINGS
 
 # Use Vi(m) style key bindings.
@@ -31,11 +33,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 +92,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 +118,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 +174,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 +209,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 +224,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'
@@ -277,3 +298,5 @@ todo() {
 source_config ~/.zsh os rc $(uname) nolocal
 # Load rc file for current hostname (first part before a dot) or rc.local.
 source_config ~/.zsh host rc ${$(hostname)//.*/}
+
+source_debug "finished sourcing ~/.zsh/rc"