-# Filename: zshrc
+# Filename: /etc/zsh/zshrc
# Purpose: config file for zsh (z shell)
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
BATTERY=${BATTERY:-0}
GRMLSMALL_SPECIFIC=${GRMLSMALL_SPECIFIC:-1}
GRML_ALWAYS_LOAD_ALL=${GRML_ALWAYS_LOAD_ALL:-0}
-GRML_WARN_SKEL=${GRML_WARN_SKEL:-1}
+
+if isgrmlcd ; then
+ GRML_WARN_SKEL=${GRML_WARN_SKEL:-0}
+else
+ GRML_WARN_SKEL=${GRML_WARN_SKEL:-1}
+fi
if (( GRML_WARN_SKEL != 0 )) ; then
If you have a .zshrc file in your home directory that originally
came from the skel directory, please remove it. This is also the case
if you followed earlier instructions from the grml-zsh-refcard or
-from <http://grml.org/console> on non-grml systems.
+from <http://grml.org/console/> on non-grml systems.
-Please see the current grml-zsh-refcard for updated installation
-information. In short, you don'\''t want a .zshrc.global file. Install
-the global zshrc to ~/.zshrc and be done.
+Please see the current grml-zsh-refcard (available at
+<http://grml.org/zsh/>) for updated installation information. In short,
+you don'\''t want a .zshrc.global file. Install the global zshrc to
+~/.zshrc and be done.
If you need changes to the configuration, use ~/.zshrc.pre and
~/.zshrc.local.
else
[[ -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/[^_]*[^~](N.) ; do
- zrcautoload -U ${func:t}
+ fdir='/etc/zsh/functions.d'
+ fpath=( ${fdir} ${fdir}/**/*(/N) ${fpath} )
+ for func in ${fdir}/**/[^_]*[^~](N.) ; do
+ zrcautoload ${func:t}
done
+ unset fdir
fi
fi
# adjust title of xterm
# see http://www.faqs.org/docs/Linux-mini/Xterm-Title.html
case $TERM in
- (xterm*|rxvt)
+ (xterm*|rxvt*)
print -Pn "\e]0;%n@%m: %~\a"
;;
esac
# {{{ completion system
# called later (via is4 && grmlcomp)
-# notice: use 'zstyle' for getting current settings
+# note: 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
grmlcomp() {
# TODO: This could use some additional information
fi
# d():Copyright 2005 Nikolai Weibull <nikolai@bitwi.se>
-# notice: option AUTO_PUSHD has to be set
+# note: option AUTO_PUSHD has to be set
#f5# Jump between directories
d() {
emulate -L zsh
compdef _hl_complete hl
fi
-# create small urls via tinyurl.com using wget, grep and sed
-zurl() {
- [[ -z ${1} ]] && print "please give an url to shrink." && return 1
- local url=${1}
- local tiny="http://tinyurl.com/create.php?url="
- #print "${tiny}${url}" ; return
- wget -O- \
- -o/dev/null \
- "${tiny}${url}" \
- | grep -Eio 'value="(http://tinyurl.com/.*)"' \
- | sed 's/value=//;s/"//g'
+# Create small urls via http://tinyurl.com using wget(1).
+function zurl() {
+ [[ -z ${1} ]] && { print "USAGE: zurl <URL>" ; return 1 }
+
+ local PN url tiny grabber search result preview
+ PN=${0}
+ url=${1}
+# Prepend 'http://' to given URL where necessary for later output.
+ [[ ${url} != http(s|)://* ]] && url='http://'${url}
+ tiny='http://tinyurl.com/create.php?url='
+ if check_com -c wget ; then
+ grabber='wget -O- -o/dev/null'
+ else
+ print "wget is not available, but mandatory for ${PN}. Aborting."
+ fi
+# Looking for i.e.`copy('http://tinyurl.com/7efkze')' in TinyURL's HTML code.
+ search='copy\(?http://tinyurl.com/[[:alnum:]]##*'
+ result=${(M)${${${(f)"$(${=grabber} ${tiny}${url})"}[(fr)${search}*]}//[()\';]/}%%http:*}
+# TinyURL provides the rather new feature preview for more confidence. <http://tinyurl.com/preview.php>
+ preview='http://preview.'${result#http://}
+
+ printf '%s\n\n' "${PN} - Shrinking long URLs via webservice TinyURL <http://tinyurl.com>."
+ printf '%s\t%s\n\n' 'Given URL:' ${url}
+ printf '%s\t%s\n\t\t%s\n' 'TinyURL:' ${result} ${preview}
}
#f2# Print a specific line of file(s).