#o# r_umaskstr rwxrwxr-x
#o# umask 022
#o# umaskstr rwxr-xr-x
-(( EUID != 0 )) && umask 002 || umask 022
+if (( EUID == 0 )); then
+ umask 002
+else
+ umask 022
+fi
setopt append_history # append history list to the history file (important for multiple parallel zsh sessions!)
is4 && setopt SHARE_HISTORY # import new commands from the history file also in other zsh-session
# Check if we can read given files and source those we can.
xsource() {
- emulate -L zsh
if (( ${#argv} < 1 )) ; then
printf 'usage: xsource FILE(s)...\n' >&2
return 1
fi
while (( ${#argv} > 0 )) ; do
- [[ -r $1 ]] && source $1
+ [[ -r "$1" ]] && source "$1"
shift
done
return 0
isdarwin && xsource /sw/bin/init.sh
# load our function and completion directories
-for fdir in /usr/share/grml/zsh/completion /usr/share/grml/functions; do
+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
for func in ${fdir}/**/[^_]*[^~](N.) ; do
#k# Kill everything in a word up to its last \kbd{/}
bindkey '\ev' slash-backward-kill-word
+#k# Kill everything in a word up to its last \kbd{/}
+bindkey '\e^h' slash-backward-kill-word
+#k# Kill everything in a word up to its last \kbd{/}
+bindkey '\e^?' slash-backward-kill-word
# use the new *-pattern-* widgets for incremental history search
if is439 ; then
# run command line as user root via sudo:
sudo-command-line() {
[[ -z $BUFFER ]] && zle up-history
- [[ $BUFFER != sudo\ * ]] && BUFFER="sudo $BUFFER"
+ if [[ $BUFFER != sudo\ * ]]; then
+ BUFFER="sudo $BUFFER"
+ CURSOR=$(( CURSOR+5 ))
+ fi
}
zle -N sudo-command-line
if zrcautoload vcs_info; then
GRML_VCS_INFO=0
+ # `vcs_info' in zsh versions 4.3.10 and below have a broken `_realpath'
+ # function, which can cause a lot of trouble with our directory-based
+ # profiles. So:
+ if [[ ${ZSH_VERSION} == 4.3.<-10> ]] ; then
+ function VCS_INFO_realpath () {
+ setopt localoptions NO_shwordsplit chaselinks
+ ( builtin cd -q $1 2> /dev/null && pwd; )
+ }
+ fi
else
# I'm not reindenting the whole code below.
GRML_VCS_INFO=1
esc_end="$2"
shift 2
printf '%s' ${esc_begin}
- for item in "$@" ; do
- printf '%s ' "$item"
- done
+ printf '%s' "$*"
printf '%s' "${esc_end}"
}
# {{{ grmlstuff
grmlstuff() {
# people should use 'grml-x'!
- startx() {
- if [[ -e /etc/X11/xorg.conf ]] ; then
- [[ -x /usr/bin/startx ]] && /usr/bin/startx "$@" || /usr/X11R6/bin/startx "$@"
- else
- echo "Please use the script \"grml-x\" for starting the X Window System
-because there does not exist /etc/X11/xorg.conf yet.
-If you want to use startx anyway please call \"/usr/bin/startx\"."
- return -1
- fi
- }
-
- xinit() {
- if [[ -e /etc/X11/xorg.conf ]] ; then
- [[ -x /usr/bin/xinit ]] && /usr/bin/xinit || /usr/X11R6/bin/xinit
- else
- echo "Please use the script \"grml-x\" for starting the X Window System.
-because there does not exist /etc/X11/xorg.conf yet.
-If you want to use xinit anyway please call \"/usr/bin/xinit\"."
- return -1
- fi
- }
-
if check_com -c 915resolution; then
855resolution() {
echo "Please use 915resolution as resolution modifying tool for Intel \
ssl_hashes=( sha512 sha256 sha1 md5 )
for sh in ${ssl_hashes}; do
- ssl-cert-${sh}() {
+ eval 'ssl-cert-'${sh}'() {
emulate -L zsh
if [[ -z $1 ]] ; then
- printf 'usage: %s <file>\n' "ssh-cert-${sh}"
+ printf '\''usage: %s <file>\n'\'' "ssh-cert-'${sh}'"
return 1
fi
- openssl x509 -noout -fingerprint -${sh} -in $1
- }
+ openssl x509 -noout -fingerprint -'${sh}' -in $1
+ }'
done; unset sh
ssl-cert-fingerprints() {
fi
# }}}
+# load the lookup subsystem if it's available on the system
+zrcautoload lookupinit && lookupinit
+
#:grep:marker:for:mika: :-)
### non-root (EUID != 0) code below
###
return 0
fi
-
# variables {{{
# set terminal property (used e.g. by msgid-chooser)
#a2# Only show empty directories
alias lse='ls -d *(/^F)' # only show empty directories
#a2# Display the ten newest files
-alias lsnew="ls -rl *(D.om[1,10])" # display the newest files
+alias lsnew="ls -rtlh *(D.om[1,10])" # display the newest files
#a2# Display the ten oldest files
-alias lsold="ls -rtlh *(D.om[1,10])" # display the oldest files
+alias lsold="ls -rtlh *(D.Om[1,10])" # display the oldest files
#a2# Display the ten smallest files
alias lssmall="ls -Srl *(.oL[1,10])" # display the smallest files
#f5# Watch manpages in a stretched style
man2() { PAGER='dash -c "sed G | /usr/bin/less"' command man "$@" ; }
-# d():Copyright 2005 Nikolai Weibull <nikolai@bitwi.se>
-# note: option AUTO_PUSHD has to be set
-#f5# Jump between directories
-d() {
- emulate -L zsh
- autoload -U colors
- local color=$fg_bold[blue]
- integer i=0
- dirs -p | while read dir; do
- local num="${$(printf "%-4d " $i)/ /.}"
- printf " %s $color%s$reset_color\n" $num $dir
- (( i++ ))
- done
- integer dir=-1
- read -r 'dir?Jump to directory: ' || return
- (( dir == -1 )) && return
- if (( dir < 0 || dir >= i )); then
- echo d: no such directory stack entry: $dir
- return 1
- fi
- cd ~$dir
-}
-
# usage example: 'lcheck strcpy'
#f5# Find out which libs define a symbol
lcheck() {
#f5# Use \kbd{vim} as your manpage reader
vman() {
emulate -L zsh
- man $* | col -b | view -c 'set ft=man nomod nolist' -
+ if (( ${#argv} == 0 )); then
+ printf 'usage: vman <topic>\n'
+ return 1
+ fi
+ man "$@" | col -b | view -c 'set ft=man nomod nolist' -
}
# function readme() { $PAGER -- (#ia3)readme* }