X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fskel%2F.zshrc;h=8695b4dbe9a42fe323715318389fd0c736202d75;hb=016955c64b5c7a1c90af47a1a26ffe466736a12b;hp=9e60f1d058e8d0802d1f9ba2f25e81375d249494;hpb=ee38301e3a546f1cf5bc219cfb2a9cc73628431a;p=grml-etc-core.git diff --git a/etc/skel/.zshrc b/etc/skel/.zshrc index 9e60f1d..8695b4d 100644 --- a/etc/skel/.zshrc +++ b/etc/skel/.zshrc @@ -6,18 +6,50 @@ ################################################################################ # Nowadays, grml's zsh setup lives in only *one* zshrc file. # That is the global one: /etc/zsh/zshrc (from grml-etc-core). -# It is best to leave this file untouched and do personal changes to -# the setup via ${HOME}/.zshrc.local which is loaded at the end of the -# global zshrc. +# It is best to leave *this* file untouched and do personal changes to +# your zsh setup via ${HOME}/.zshrc.local which is loaded at the end of +# the global zshrc. # # That way, we enable people on other operating systems to use our # setup, too, just by copying our global zshrc to their ${HOME}/.zshrc. # Adjustments would still go to the .zshrc.local file. ################################################################################ +## Inform users about upgrade path for grml's old zshrc layout, assuming that: +## /etc/skel/.zshrc was installed as ~/.zshrc, +## /etc/zsh/zshrc was installed as ~/.zshrc.global and +## ~/.zshrc.local does not exist yet. +if [ -r ~/.zshrc -a -r ~/.zshrc.global -a ! -r ~/.zshrc.local ] ; then + printf '-!-\n' + printf '-!- Looks like you are using the old zshrc layout of grml.\n' + printf '-!- Please read the notes in the grml-zsh-refcard, being' + printf '-!- available at: http://grml.org/zsh/\n' + printf '-!-\n' + printf '-!- If you just want to get rid of this warning message execute:\n' + printf '-!- touch ~/.zshrc.local\n' + printf '-!-\n' +fi + +## Settings for umask +#if (( EUID == 0 )); then +# umask 002 +#else +# umask 022 +#fi + ## Now, we'll give a few examples of what you might want to use in your ## .zshrc.local file (just copy'n'paste and uncomment it there): +## Prompt theme extension ## + +# Virtualenv support + +#function virtual_env_prompt () { +# REPLY=${VIRTUAL_ENV+(${VIRTUAL_ENV:t}) } +#} +#grml_theme_add_token virtual-env -f virtual_env_prompt '%F{magenta}' '%f' +#zstyle ':prompt:grml:left:setup' items rc virtual-env change-root user at host path vcs percent + ## ZLE tweaks ## ## use the vi navigation keys (hjkl) besides cursor keys in menu completion @@ -49,12 +81,32 @@ #WORDCHARS='*?_[]~=&;!#$%^(){}' #WORDCHARS='${WORDCHARS:s@/@}' +# just type '...' to get '../..' +#rationalise-dot() { +#local MATCH +#if [[ $LBUFFER =~ '(^|/| | |'$'\n''|\||;|&)\.\.$' ]]; then +# LBUFFER+=/ +# zle self-insert +# zle self-insert +#else +# zle self-insert +#fi +#} +#zle -N rationalise-dot +#bindkey . rationalise-dot +## without this, typing a . aborts incremental history search +#bindkey -M isearch . self-insert + +#bindkey '\eq' push-line-or-edit ## some popular options ## ## add `|' to output redirections in the history #setopt histallowclobber +## try to avoid the 'zsh: no matches found...' +#setopt nonomatch + ## warning if file exists ('cat /dev/null > ~/.zshrc') #setopt NO_clobber @@ -92,6 +144,10 @@ #zstyle ':completion:*:my-accounts' users-hosts $my_accounts #zstyle ':completion:*:other-accounts' users-hosts $other_accounts +## add grml.org to your list of hosts +#hosts+=(grml.org) +#zstyle ':completion:*:hosts' hosts $hosts + ## telnet on non-default ports? ...well: ## specify specific port/service settings: #telnet_users_hosts_ports=( @@ -115,9 +171,6 @@ ## ignore ~/.ssh/known_hosts entries #alias insecssh='ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null" -o "PreferredAuthentications=keyboard-interactive"' -## a variation of our man2 alias -#alias man2='MANPAGER="sed -e G |less" TERMINFO=~/.terminfo TERM=mostlike /usr/bin/man' - ## global aliases (for those who like them) ## @@ -139,6 +192,18 @@ #alias -g T='|tail' #alias -g V='| vim -' +## instead of global aliase it might be better to use grmls $abk assoc array, whose contents are expanded after pressing ,. +#$abk[SnL]="| sort -n | less" + +## get top 10 shell commands: +#alias top10='print -l ${(o)history%% *} | uniq -c | sort -nr | head -n 10' + +## Execute \kbd{./configure} +#alias CO="./configure" + +## Execute \kbd{./configure --help} +#alias CH="./configure --help" + ## miscellaneous code ## ## Use a default width of 80 for manpages for more convenient reading @@ -147,10 +212,8 @@ ## Set a search path for the cd builtin #cdpath=(.. ~) -## variations of our manzsh() function; pick you poison: +## variation of our manzsh() function; pick you poison: #manzsh() { /usr/bin/man zshall | most +/"$1" ; } -#[[ -f ~/.terminfo/m/mostlike ]] && MYLESS='LESS=C TERMINFO=~/.terminfo TERM=mostlike less' || MYLESS='less' -#manzsh() { man zshall | $MYLESS -p $1 ; } ## Switching shell safely and efficiently? http://www.zsh.org/mla/workers/2001/msg02410.html #bash() { @@ -160,6 +223,80 @@ # exec $SHELL $SHELL_ARGS "$@" #} +## Handy functions for use with the (e::) globbing qualifier (like nt) +#contains() { grep -q "$*" $REPLY } +#sameas() { diff -q "$*" $REPLY &>/dev/null } +#ot () { [[ $REPLY -ot ${~1} ]] } + +## get_ic() - queries imap servers for capabilities; real simple. no imaps +#ic_get() { +# emulate -L zsh +# local port +# if [[ ! -z $1 ]] ; then +# port=${2:-143} +# print "querying imap server on $1:${port}...\n"; +# print "a1 capability\na2 logout\n" | nc $1 ${port} +# else +# print "usage:\n $0 [port]" +# fi +#} + +## List all occurrences of programm in current PATH +#plap() { +# emulate -L zsh +# if [[ $# = 0 ]] ; then +# echo "Usage: $0 program" +# echo "Example: $0 zsh" +# echo "Lists all occurrences of program in the current PATH." +# else +# ls -l ${^path}/*$1*(*N) +# fi +#} + +## Find out which libs define a symbol +#lcheck() { +# if [[ -n "$1" ]] ; then +# nm -go /usr/lib/lib*.a 2>/dev/null | grep ":[[:xdigit:]]\{8\} . .*$1" +# else +# echo "Usage: lcheck " >&2 +# fi +#} + +## Download a file and display it locally +#uopen() { +# emulate -L zsh +# if ! [[ -n "$1" ]] ; then +# print "Usage: uopen \$URL/\$file">&2 +# return 1 +# else +# FILE=$1 +# MIME=$(curl --head $FILE | \ +# grep Content-Type | \ +# cut -d ' ' -f 2 | \ +# cut -d\; -f 1) +# MIME=${MIME%$'\r'} +# curl $FILE | see ${MIME}:- +# fi +#} + +## Memory overview +#memusage() { +# ps aux | awk '{if (NR > 1) print $5; +# if (NR > 2) print "+"} +# END { print "p" }' | dc +#} + +## print hex value of a number +#hex() { +# emulate -L zsh +# if [[ -n "$1" ]]; then +# printf "%x\n" $1 +# else +# print 'Usage: hex ' +# return 1 +# fi +#} + ## log out? set timeout in seconds... ## ...and do not log out in some specific terminals: #if [[ "${TERM}" == ([Exa]term*|rxvt|dtterm|screen*) ]] ; then @@ -195,3 +332,5 @@ #showINC () { perl -e 'for (@INC) { printf "%d %s\n", $i++, $_ }' } #vimpm () { vim `perldoc -l $1 | sed -e 's/pod$/pm/'` } #vimhelp () { vim -c "help $1" -c on -c "au! VimEnter *" } + +## END OF FILE #################################################################