X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=etc%2Fskel%2F.zshrc;h=948fd37b1d5ac266f440ef9eebebc44d2a799abd;hb=74a8efd0172e2468ee055a019f14706276758c7d;hp=22869f7cf9a980e8690564a118d31be295a433a3;hpb=f3ba81acd221a5f865236f5e70706d7d599a7a51;p=grml-etc-core.git diff --git a/etc/skel/.zshrc b/etc/skel/.zshrc index 22869f7..948fd37 100644 --- a/etc/skel/.zshrc +++ b/etc/skel/.zshrc @@ -1,20 +1,54 @@ -## skel/.zshrc on grml systems -# -# Nowadays, grml's zsh setup lives in only in *one* zshrc file. +# Filename: /etc/skel/.zshrc +# Purpose: config file for zsh (z shell) +# Authors: (c) grml-team (grml.org) +# Bug-Reports: see http://grml.org/bugs/ +# License: This file is licensed under the GPL v2 or any later version. +################################################################################ +# 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 ## @@ -41,18 +75,38 @@ #} #zle -N mquote && bindkey '^q' mquote -# define word separators (for stuff like backward-word, forward-word, backward-kill-word,..) -# WORDCHARS='*?_-.[]~=/&;!#$%^(){}<>' # the default -# WORDCHARS=. -# WORDCHARS='*?_[]~=&;!#$%^(){}' -# WORDCHARS='${WORDCHARS:s@/@}' +## define word separators (for stuff like backward-word, forward-word, backward-kill-word,..) +#WORDCHARS='*?_-.[]~=/&;!#$%^(){}<>' # the default +#WORDCHARS=. +#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 @@ -68,6 +122,9 @@ ## Allow comments even in interactive shells #setopt interactivecomments +## if a new command line being added to the history list duplicates an older +## one, the older command is removed from the list +#is4 && setopt histignorealldups ## compsys related snippets ## @@ -90,6 +147,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=( @@ -101,6 +162,9 @@ #) #zstyle ':completion:*:*:telnet:*' users-hosts-ports $telnet_users_hosts_ports +## the default grml setup provides '..' as a completion. it does not provide +## '.' though. If you want that too, use the following line: +#zstyle ':completion:*' special-dirs true ## aliases ## @@ -110,9 +174,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) ## @@ -123,6 +184,7 @@ #alias -g G='|grep' #alias -g H='|head' #alias -g Hl=' --help |& less -r' +#alias -g J='|jq' #alias -g K='|keep' #alias -g L='|less' #alias -g LL='|& less -r' @@ -134,12 +196,28 @@ #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 ## -## variations of our manzsh() function; pick you poison: +## Use a default width of 80 for manpages for more convenient reading +#export MANWIDTH=${MANWIDTH:-80} + +## Set a search path for the cd builtin +#cdpath=(.. ~) + +## 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() { @@ -149,6 +227,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 @@ -185,3 +337,4 @@ #vimpm () { vim `perldoc -l $1 | sed -e 's/pod$/pm/'` } #vimhelp () { vim -c "help $1" -c on -c "au! VimEnter *" } +## END OF FILE #################################################################