setopt incappendhistory
# If the same command is run multiple times store it only once in the history.
setopt histignoredups
+# Don't add lines starting with a space to the history.
+setopt histignorespace
# Vim like completions of previous executed commands (also enter Vi-mode). If
# called at the beginning it just recalls old commands (like cursor up), if
# called after typing something, only lines starting with the typed text are
zstyle ':vcs_info:*' enable git hg
# Check the repository for changes so they can be used in %u/%c (see
# below). This comes with a speed penalty for bigger repositories.
- zstyle ':vcs_info:*' check-for-changes true
+ zstyle ':vcs_info:*' check-for-changes yes
# Set style of vcs_info display. The current branch (green) and VCS (blue)
# is displayed. If there is an special action going on (merge, rebase)
# currently running program.
#
# When a program is started preexec() sets the window's name to it; when it
-# stops precmd() resets the window's name to 'zsh'.
+# stops precmd() resets the window's name to 'zsh'. 'fg' is supported and sets
+# the window's name to the resumed job.
#
# It works with screen, xterm and rxvt.
#
program_name=${program_name#sudo }
program_sudo=yes
fi
+
+ # Replace fg with the resumed job name.
+ if [[ $program_name == fg ]]; then
+ program_name=${jobtexts[%+]}
+ elif [[ $program_name == fg* ]]; then
+ program_name=${jobtexts[${program_name#fg }]}
+ fi
+
# Remove all arguments from the program name.
program_name=${program_name%% *}
autoload -Uz compinit && compinit -d ~/.zsh/cache/zcompdump
# Use cache to speed up some slow completions (dpkg, perl modules, etc.).
-zstyle ':completion:*' use-cache on
+zstyle ':completion:*' use-cache yes
zstyle ':completion:*' cache-path ~/.zsh/cache
# Let the completion system handle all completions, including expanding of
alias clear='clear; window_reset=yes; window_precmd reset'
fi
+
+# CUSTOM COMMANDS
+
# Display all branches (except stash) in gitk but only 200 commits as this is
-# much faster. Also put in the background and disown. Thanks to sitaram in
-# #git on Freenode (2009-04-20 15:51).
+# much faster. Also put in the background and disown. Thanks to drizzd in #git
+# on Freenode (2010-04-03 17:55 CEST).
gitk() {
- command gitk \
- --max-count=200 \
- $(git rev-parse --symbolic-full-name --remotes --branches) \
- $@ &
+ command gitk --max-count=200 --branches --remotes --tags "$@" &
disown %command
}
# Same for tig (except the disown part as it's no GUI program).
tig() {
- command tig \
- --max-count=200 \
- $(git rev-parse --symbolic-full-name --remotes --branches) \
- $@
+ command tig --max-count=200 --branches --remotes --tags "$@"
}
# Pipe output through less.
disown %command
}
+# GHCI doesn't use readline, force it if rlwrap is available.
+(( $+commands[rlwrap] )) && ghci() {
+ command rlwrap \
+ --always-readline --complete-filenames -t dumb \
+ --histsize 5000 \
+ --file ~/.shell/rlwrap/ghci \
+ ghci "$@" 2>&1
+}
+
# OS SPECIFIC SETTINGS