return 1
}
+isfreebsd(){
+ [[ $OSTYPE == freebsd* ]] && return 0
+ return 1
+}
+
#f1# are we running within an utf environment?
isutfenv() {
case "$LANG $CHARSET $LANGUAGE" in
local -i ffound
ffile=$1
- (( found = 0 ))
+ (( ffound = 0 ))
for fdir in ${fpath} ; do
[[ -e ${fdir}/${ffile} ]] && (( ffound = 1 ))
done
# color setup for ls:
check_com -c dircolors && eval $(dircolors -b)
-# color setup for ls on OS X:
+# color setup for ls on OS X / FreeBSD:
isdarwin && export CLICOLOR=1
+isfreebsd && export CLICOLOR=1
# do MacPorts setup on darwin
if isdarwin && [[ -d /opt/local ]]; then
# load our function and completion directories
for fdir in /usr/share/grml/zsh/completion /usr/share/grml/zsh/functions; do
fpath=( ${fdir} ${fdir}/**/*(/N) ${fpath} )
- if [[ ${fpath} == '/usr/share/grml/zsh/functions' ]] ; then
+ if [[ ${fdir} == '/usr/share/grml/zsh/functions' ]] ; then
for func in ${fdir}/**/[^_]*[^~](N.) ; do
zrcautoload ${func:t}
done
# automatically remove duplicates from these arrays
typeset -U path cdpath fpath manpath
+# Remove zle-line-{init,finish} if it looks like it turns smkx. This would be
+# better fixed by working with those modes too, but we use way too many
+# hardcoded bindings for now.
+function remove_widget () {
+ local name=$1
+ local cap=$2
+ if (( ${+functions[$name]} )) && [[ ${functions[$name]} == *${cap}* ]]; then
+ local w=${widgets[$name]}
+ zle -D $name
+ [[ $w == user:* ]] && unfunction ${w#*:}
+ fi
+}
+remove_widget zle-line-init smkx
+remove_widget zle-line-finish rmkx
+unfunction remove_widget
+
# keybindings
if [[ "$TERM" != emacs ]] ; then
[[ -z "$terminfo[kdch1]" ]] || bindkey -M emacs "$terminfo[kdch1]" delete-char
compinit || print 'Notice: no compinit available :('
else
print 'Notice: no compinit available :('
- function zstyle { }
function compdef { }
fi
zstyle ':completion:*:manuals.*' insert-sections true
zstyle ':completion:*:man:*' menu yes select
+ # Search path for sudo completion
+ zstyle ':completion:*:sudo:*' command-path /usr/local/sbin \
+ /usr/local/bin \
+ /usr/sbin \
+ /usr/bin \
+ /sbin \
+ /bin \
+ /usr/X11R6/bin
+
# provide .. as a completion
zstyle ':completion:*' special-dirs ..
#m# f6 Stop() \kbd{/etc/init.d/\em{process}}\quad\kbd{stop}
#m# f6 Reload() \kbd{/etc/init.d/\em{process}}\quad\kbd{reload}
#m# f6 Force-Reload() \kbd{/etc/init.d/\em{process}}\quad\kbd{force-reload}
+#m# f6 Status() \kbd{/etc/init.d/\em{process}}\quad\kbd{status}
if [[ -d /etc/init.d || -d /etc/service ]] ; then
__start_stop() {
local action_="${1:l}" # e.g Start/Stop/Restart
_describe "service startup script" scripts
}
- for i in Start Restart Stop Force-Reload Reload ; do
+ for i in Start Restart Stop Force-Reload Reload Status ; do
eval "$i() { __start_stop $i \"\$1\" \"\$2\" ; }"
compdef _grmlinitd $i
done
# VIM_OPTIONS=( -p )
# This will cause vim to send every file given on the
# commandline to be send to it's own tab (needs vim7).
-vim() {
- VIM_PLEASE_SET_TITLE='yes' command vim ${VIM_OPTIONS} "$@"
-}
+if check_com vim; then
+ vim() {
+ VIM_PLEASE_SET_TITLE='yes' command vim ${VIM_OPTIONS} "$@"
+ }
+fi
# make a backup of a file
bk() {
zparseopts -D -E "d=DELETE_ORIGINAL"
for ARCHIVE in "${@}"; do
case $ARCHIVE in
- *.(tar.bz2|tbz2|tbz))
+ *(tar.bz2|tbz2|tbz))
DECOMP_CMD="tar -xvjf -"
USES_STDIN=true
USES_STDOUT=false
;;
- *.(tar.gz|tgz))
+ *(tar.gz|tgz))
DECOMP_CMD="tar -xvzf -"
USES_STDIN=true
USES_STDOUT=false
;;
- *.(tar.xz|txz|tar.lzma))
+ *(tar.xz|txz|tar.lzma))
DECOMP_CMD="tar -xvJf -"
USES_STDIN=true
USES_STDOUT=false
;;
- *.tar)
+ *tar)
DECOMP_CMD="tar -xvf -"
USES_STDIN=true
USES_STDOUT=false
;;
- *.rar)
+ *rar)
DECOMP_CMD="unrar x"
USES_STDIN=false
USES_STDOUT=false
;;
- *.lzh)
+ *lzh)
DECOMP_CMD="lha x"
USES_STDIN=false
USES_STDOUT=false
;;
- *.7z)
+ *7z)
DECOMP_CMD="7z x"
USES_STDIN=false
USES_STDOUT=false
;;
- *.(zip|jar))
+ *(zip|jar))
DECOMP_CMD="unzip"
USES_STDIN=false
USES_STDOUT=false
;;
- *.deb)
+ *deb)
DECOMP_CMD="ar -x"
USES_STDIN=false
USES_STDOUT=false
;;
- *.bz2)
+ *bz2)
DECOMP_CMD="bzip2 -d -c -"
USES_STDIN=true
USES_STDOUT=true
;;
- *.(gz|Z))
+ *(gz|Z))
DECOMP_CMD="gzip -d -c -"
USES_STDIN=true
USES_STDOUT=true
;;
- *.(xz|lzma))
+ *(xz|lzma))
DECOMP_CMD="xz -d -c -"
USES_STDIN=true
USES_STDOUT=true