# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2.
-# Latest change: Don Nov 22 11:13:15 CET 2007 [mika]
+# Latest change: Sam Dez 22 19:17:27 CET 2007 [mika]
################################################################################
# This file is sourced only for interactive shells. It
# should contain commands to set up aliases, functions,
return 1
fi
- if [[ -n ${commands[$1]} ]] \
- || [[ -n ${functions[$1]} ]] \
- || [[ -n ${aliases[$1]} ]] \
- || [[ -n ${reswords[$1]} ]] ; then
+ if [[ -n ${commands[$1]} ]] \
+ || [[ -n ${functions[$1]} ]] \
+ || [[ -n ${aliases[$1]} ]] \
+ || [[ -n ${reswords[(r)$1]} ]] ; then
return 0
fi
bindkey '\ee' edit-command-line
fi
-#k# menu selection: pick item but stay in the menu
-is4 && bindkey -M menuselect '\e^M' accept-and-menu-complete
+if is4 && [[ -n ${(k)modules[zsh/complist]} ]] ; then
+ #k# menu selection: pick item but stay in the menu
+ bindkey -M menuselect '\e^M' accept-and-menu-complete
+
+ # use the vi navigation keys (hjkl) besides cursor keys in menu completion
+ #bindkey -M menuselect 'h' vi-backward-char # left
+ #bindkey -M menuselect 'k' vi-up-line-or-history # up
+ #bindkey -M menuselect 'l' vi-forward-char # right
+ #bindkey -M menuselect 'j' vi-down-line-or-history # bottom
+
+ # accept a completion and try to complete again by using menu
+ # completion; very useful with completing directories
+ # by using 'undo' one's got a simple file browser
+ bindkey -M menuselect '^o' accept-and-infer-next-history
+fi
# press "ctrl-e d" to insert the actual date in the form yyyy-mm-dd
_bkdate() { BUFFER="$BUFFER$(date '+%F')"; CURSOR=$#BUFFER; }
preexec () {
[[ -n $NOPRECMD ]] && return 0
# set hostname if not running on host with name 'grml'
- local HOSTNAME=$(hostname)
- if [[ "$HOSTNAME" != grml ]] ; then
- NAME="@$HOSTNAME"
+ if [[ "$HOSTNAME" != $(hostname) ]] ; then
+ NAME="@$HOSTNAME"
fi
# get the name of the program currently running and hostname of local machine
# set screen window title if running in a screen
# called later (via is4 && grmlcomp)
# notice: use 'zstyle' for getting current settings
# press ^Xh (control-x h) for getting tags in context; ^X? (control-x ?) to run complete_debug with trace output
+# TODO: make grmlcomp() readable. :-)
grmlcomp() {
## completion system
## no initial indention in grmlcomp(), the lines are long enough already.
zstyle ':completion:*:processes' command 'ps -au$USER' # on processes completion complete all user processes
zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters # offer indexes before parameters in subscripts
zstyle ':completion:*' verbose true # provide verbose completion information
+
+# recent (as of Dec 2007) zsh versions are able to provide descriptions
+# for commands (read: 1st word in the line) that it will list for the user
+# to choose from. The following disables that, because it's not exactly fast.
+zstyle ':completion:*:-command-:*:' verbose false
+
zstyle ':completion:*:warnings' format $'%{\e[0;31m%}No matches for:%{\e[0m%} %d' # set format for warnings
zstyle ':completion:*:*:zcompile:*' ignored-patterns '(*~|*.zwc)' # define files to ignore for zcompile
zstyle ':completion:correct:' prompt 'correct to: %e' #
# }}}
## END OF FILE #################################################################
-# vim:foldmethod=marker expandtab
+# vim:filetype=zsh foldmethod=marker autoindent expandtab shiftwidth=4