#k# Insert Unicode character
bindkey '^Xi' insert-unicode-char
+#m# k Shift-tab Perform backwards menu completion
+if [[ -n "$terminfo[kcbt]" ]]; then
+ bindkey "$terminfo[kcbt]" reverse-menu-complete
+elif [[ -n "$terminfo[cbt]" ]]; then # required for GNU screen
+ bindkey "$terminfo[cbt]" reverse-menu-complete
+fi
+
## toggle the ,. abbreviation feature on/off
# NOABBREVIATION: default abbreviation-state
# 0 - enabled (default)
#k# Insert last typed word
bindkey "\em" insert-last-typed-word
-#k# Shortcut for \kbd{fg<enter>}
-bindkey -s '^z' "fg\n"
+function grml-zsh-fg() {
+ if (( ${#jobstates} )); then
+ zle .push-input
+ [[ -o hist_ignore_space ]] && BUFFER=' ' || BUFFER=''
+ BUFFER="${BUFFER}fg"
+ zle .accept-line
+ else
+ zle -M 'No background jobs. Doing nothing.'
+ fi
+}
+zle -N grml-zsh-fg
+#k# A smart shortcut for \kbd{fg<enter>}
+bindkey '^z' grml-zsh-fg
# run command line as user root via sudo:
sudo-command-line() {
elif [[ -r $HOME/.screenrc ]] ; then
alias screen="${commands[screen]} -c $HOME/.screenrc"
else
- [[ -r /etc/grml/screenrc_grml ]] && alias screen="${commands[screen]} -c /etc/grml/screenrc_grml"
+ if [[ -r /etc/grml/screenrc_grml ]]; then
+ alias screen="${commands[screen]} -c /etc/grml/screenrc_grml"
+ else
+ [[ -r /etc/grml/screenrc ]] && alias screen="${commands[screen]} -c /etc/grml/screenrc"
+ fi
fi
fi
salias dhclient "$(wavemon -d | awk '/device/{print $2}')"
}
-# spawn a minimally set up ksh - useful if you want to umount /usr/.
+# spawn a minimally set up mksh - useful if you want to umount /usr/.
minimal-shell() {
- exec env -i ENV="/etc/minimal-shellrc" HOME="$HOME" TERM="$TERM" ksh
+ emulate -L zsh
+ local shell="/bin/mksh"
+
+ if [[ ! -x ${shell} ]]; then
+ printf '`%s'\'' not available, giving up.\n' ${shell} >&2
+ return 1
+ fi
+
+ exec env -i ENV="/etc/minimal-shellrc" HOME="$HOME" TERM="$TERM" ${shell}
}
# a wrapper for vim, that deals with title setting
pcre_match $2 && echo "regex matches" || echo "regex does not match"
}
-#f5# List files which have been modified within the last {\it n} days
+#f5# List files which have been changed within the last {\it n} days, {\it n} defaults to 1
+changed() {
+ emulate -L zsh
+ print -l *(c-${1:1})
+}
+
+#f5# List files which have been modified within the last {\it n} days, {\it n} defaults to 1
new() {
emulate -L zsh
- print -l *(m-$1)
+ print -l *(m-${1:1})
}
#f5# Grep in history