# {{{ check for version/system
# check for versions (compatibility reasons)
-if autoload is-at-least && is-at-least 2>/dev/null ; then
- is4() { is-at-least 4 }
- is41() { is-at-least 4.1 }
- is42() { is-at-least 4.2 }
-else
- is4(){
- [[ $ZSH_VERSION == 4.* ]] && return 0
- return 1
- }
- is42(){
- [[ $ZSH_VERSION == 4.<2->* ]] && return 0
- return 1
- }
-fi
+is4(){
+ [[ $ZSH_VERSION == <4->* ]] && return 0
+ return 1
+}
+
+is41(){
+ [[ $ZSH_VERSION == 4.<1->* || $ZSH_VERSION == <5->* ]] && return 0
+ return 1
+}
+
+is42(){
+ [[ $ZSH_VERSION == 4.<2->* || $ZSH_VERSION == <5->* ]] && return 0
+ return 1
+}
+
+is43(){
+ [[ $ZSH_VERSION == 4.<3->* || $ZSH_VERSION == <5->* ]] && return 0
+ return 1
+}
#f1# Checks whether or not you're running grml
isgrml(){
# }}}
# {{{ set some variables
-#v#
if check_com -c vim ; then
+#v#
export EDITOR=${EDITOR:-vim}
else
export EDITOR=${EDITOR:-vi}
fi
+
#v#
+(( ${+PAGER} )) || export PAGER="less"
+#v#
export MAIL=${MAIL:-/var/mail/$USER}
# if we don't set $SHELL then aterm, rxvt,.. will use /bin/sh or /bin/bash :-/
if [[ -n "$BROKEN_COMPLETION_DIR" ]] ; then
print 'Warning: not setting completion directories because broken files have been found.' >&2
else
- [[ -d /etc/zsh/completion.d ]] && fpath+=( /etc/zsh/completion.d )
+ [[ -d /etc/zsh/completion.d ]] && fpath=( $fpath /etc/zsh/completion.d )
if [[ -d /etc/zsh/functions.d ]] ; then
fpath+=( /etc/zsh/functions.d )
for func in /etc/zsh/functions.d/[^_]*[^~] ; do
#
# For a broader description, see:
# <http://bewatermyfriend.org/posts/2007/12-26.11-50-38-tooltime.html>
+#
+# The code is imported from the file 'zsh/functions/accept-line' from
+# <http://ft.bewatermyfriend.org/comp/zsh/zsh-dotfiles.tar.bz2>, which
+# distributed under the same terms as zsh itself.
# A newly added command will may not be found or will cause false
# correction attempts, if you got auto-correction set. By setting the
fi
chpwd() {
- builtin dirs -pl >! ~/.zdirs
+ builtin print -l ${(u)dirstack} >! ~/.zdirs
}
# }}}
preexec () {
[[ -n $NOPRECMD ]] && return 0
# set hostname if not running on host with name 'grml'
- if [[ "$HOSTNAME" != $(hostname) ]] ; then
+ if [[ -n "$HOSTNAME" ]] && [[ "$HOSTNAME" != $(hostname) ]] ; then
NAME="@$HOSTNAME"
fi
# get the name of the program currently running and hostname of local machine
# {{{ Use hard limits, except for a smaller stack and no core dumps
unlimit
-limit stack 8192
+is4 && limit stack 8192
isgrmlcd && limit core 0 # important for a live-cd-system
limit -s
# }}}
# zstyle ':completion:*' completer _complete _correct _approximate
# zstyle ':completion:*' expand prefix suffix
- # automatic rehash? Credits go to Frank Terbeck
- # TODO: keep this at all? And if so, move it, it has nothing to do with completion
- # my_accept() {
- # local buf
- # [[ -z ${BUFFER} ]] && zle accept-line && return
- # buf=( ${(z)BUFFER} )
- # [[ -z ${commands[${buf[1]}]} ]] && rehash
- # zle accept-line
- # }
- # zle -N my_accept
- # bindkey "^M" my_accept
-
# command for process lists, the local web server details and host completion
zstyle ':completion:*:urls' local 'www' '/var/www/' 'public_html'
# manzsh() { man zshall | $MYLESS -p $1 ; }
fi
-if check_com -c most ; then
+if check_com -c $PAGER ; then
#f1# View Debian's changelog of a given package
dchange() {
if [[ -r /usr/share/doc/${1}/changelog.Debian.gz ]] ; then
- most /usr/share/doc/${1}/changelog.Debian.gz
+ $PAGER /usr/share/doc/${1}/changelog.Debian.gz
elif [[ -r /usr/share/doc/${1}/changelog.gz ]] ; then
- most /usr/share/doc/${1}/changelog.gz
+ $PAGER /usr/share/doc/${1}/changelog.gz
else
if check_com -c aptitude ; then
echo "No changelog for package $1 found, using aptitude to retrieve it."
#f1# View Debian's NEWS of a given package
dnews() {
if [[ -r /usr/share/doc/${1}/NEWS.Debian.gz ]] ; then
- most /usr/share/doc/${1}/NEWS.Debian.gz
+ $PAGER /usr/share/doc/${1}/NEWS.Debian.gz
else
if [[ -r /usr/share/doc/${1}/NEWS.gz ]] ; then
- most /usr/share/doc/${1}/NEWS.gz
+ $PAGER /usr/share/doc/${1}/NEWS.gz
else
echo "No NEWS file for package $1 found, sorry."
return 1
#f1# View upstream's changelog of a given package
uchange() {
if [[ -r /usr/share/doc/${1}/changelog.gz ]] ; then
- most /usr/share/doc/${1}/changelog.gz
+ $PAGER /usr/share/doc/${1}/changelog.gz
else
echo "No changelog for package $1 found, sorry."
return 1