X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=354fe82944c15610ac428535a81af999a19dc743;hb=f3ba81acd221a5f865236f5e70706d7d599a7a51;hp=96c890a7b3fc7f0188278a3fc18f1f7ecc376ee0;hpb=749c71d05a668b3b9c2bcddf32e570b44ce5fe7b;p=grml-etc-core.git diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 96c890a..354fe82 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -102,6 +102,40 @@ NOPRECMD=${NOPRECMD:-0} 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 (( GRML_WARN_SKEL != 0 )) ; then + printf ' +Dear user, + +You updated grml'\''s zshrc which brings a major change. +The configuration is kept only in one file, being the global zshrc. +In the past, the configuration was split in two files, with the +second file being the .zshrc file from /etc/skel. + +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 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. + +If you need changes to the configuration, use ~/.zshrc.pre and +~/.zshrc.local. + +To remove this warning execute '\''grml_do_not_warn_skel'\''. + +' | more + +function grml_do_not_warn_skel() { + printf '# Do not warn about old skel dot-files anymore\n' >>! ~/.zshrc.pre + printf 'GRML_WARN_SKEL=0\n' >>! ~/.zshrc.pre +} + +fi + # }}} # {{{ check for version/system @@ -152,6 +186,11 @@ else isgrmlsmall() { return 1 } fi +isdarwin(){ + [[ $OSTYPE == darwin* ]] && return 0 + return 1 +} + #f1# are we running within an utf environment? isutfenv() { case "$LANG $CHARSET $LANGUAGE" in @@ -427,6 +466,18 @@ export SHELL='/bin/zsh' # color setup for ls: check_com -c dircolors && eval $(dircolors -b) +# color setup for ls on OS X: +isdarwin && export CLICOLOR=1 + +# do MacPorts setup on darwin +if isdarwin && [[ -d /opt/local ]]; then + # Note: PATH gets set in /etc/zprofile on Darwin, so this can't go into + # zshenv. + PATH="/opt/local/bin:/opt/local/sbin:$PATH" + MANPATH="/opt/local/share/man:$MANPATH" +fi +# do Fink setup on darwin +isdarwin && xsource /sw/bin/init.sh # set width of man pages to 80 for more convenient reading # export MANWIDTH=${MANWIDTH:-80} @@ -846,12 +897,6 @@ if is4 && [[ -n ${(k)modules[zsh/complist]} ]] ; then #k# menu selection: pick item but stay in the menu bindkey -M menuselect '\e^M' accept-and-menu-complete - # use the vi navigation keys (hjkl) besides cursor keys in menu completion - #bindkey -M menuselect 'h' vi-backward-char # left - #bindkey -M menuselect 'k' vi-up-line-or-history # up - #bindkey -M menuselect 'l' vi-forward-char # right - #bindkey -M menuselect 'j' vi-down-line-or-history # bottom - # accept a completion and try to complete again by using menu # completion; very useful with completing directories # by using 'undo' one's got a simple file browser @@ -872,26 +917,9 @@ zle -N insert-last-typed-word; #k# Insert last typed word bindkey "\em" insert-last-typed-word -# set command prediction from history, see 'man 1 zshcontrib' -# is4 && zrcautoload predict-on && \ -# zle -N predict-on && \ -# zle -N predict-off && \ -# bindkey "^X^Z" predict-on && \ -# bindkey "^Z" predict-off - #k# Shortcut for \kbd{fg} bindkey -s '^z' "fg\n" -# press ctrl-q to quote line: -# mquote () { -# zle beginning-of-line -# zle forward-word -# # RBUFFER="'$RBUFFER'" -# RBUFFER=${(q)RBUFFER} -# zle end-of-line -# } -# zle -N mquote && bindkey '^q' mquote - # run command line as user root via sudo: sudo-command-line() { [[ -z $BUFFER ]] && zle up-history @@ -936,8 +964,6 @@ is4 && setopt histignorealldups # If a new command line being added to the h # list duplicates an older one, the older command is removed from the list setopt histignorespace # remove command lines from the history list when # the first character on the line is a space -# setopt histallowclobber # add `|' to output redirections in the history -# setopt NO_clobber # warning if file exists ('cat /dev/null > ~/.zshrc') setopt auto_cd # if a command is issued that can't be executed as a normal command, # and the command is the name of a directory, perform the cd command to that directory setopt extended_glob # in order to use #, ~ and ^ for filename generation @@ -949,10 +975,7 @@ setopt notify # report the status of backgrounds jobs immediately setopt hash_list_all # Whenever a command completion is attempted, make sure \ # the entire command path is hashed first. setopt completeinword # not just at the end -# setopt nocheckjobs # don't warn me about bg processes when exiting setopt nohup # and don't kill them, either -# setopt printexitvalue # alert me if something failed -# setopt dvorak # with spelling correction, assume dvorak kb setopt auto_pushd # make cd push the old directory onto the directory stack. setopt nonomatch # try to avoid the 'zsh: no matches found...' setopt nobeep # avoid "beep"ing @@ -962,12 +985,6 @@ MAILCHECK=30 # mailchecks REPORTTIME=5 # report about cpu-/system-/user-time of command if running longer than 5 seconds watch=(notme root) # watch for everyone but me and root -# define word separators (for stuff like backward-word, forward-word, backward-kill-word,..) -# WORDCHARS='*?_-.[]~=/&;!#$%^(){}<>' # the default -# WORDCHARS=. -# WORDCHARS='*?_[]~=&;!#$%^(){}' -# WORDCHARS='${WORDCHARS:s@/@}' - # only slash should be considered as a word separator: slash-backward-kill-word() { local WORDCHARS="${WORDCHARS:s@/@}" @@ -1213,6 +1230,11 @@ zstyle ':vcs_info:*' max-exports 1 # disable - Provide a list of systems, you don't want # the vcs_info() to check for repositories # (checked in the 'init' context, too). +# disable-patterns - A list of patterns that are checked against $PWD. +# If the pattern matches, vcs_info will be disabled. +# Say, ~/.zsh is a directory under version control, +# in which you do not want vcs_info to be active, do: +# zstyle ':vcs_info:*' disable-patterns "$HOME/.zsh+(|/*)" # use-simple - If there are two different ways of gathering # information, you can select the simpler one # by setting this style to true; the default @@ -1233,6 +1255,7 @@ zstyle ':vcs_info:*' max-exports 1 # max-exports 2 # enable true # disable (empty list) +# disable-patterns (empty list) # use-simple false # use-prompt-escapes true # @@ -1797,8 +1820,9 @@ vcs_info_lastmsg () { # {{{ } # }}} vcs_info () { # {{{ + local pat local -i found - local -a VCSs disabled + local -a VCSs disabled dps local -x vcs usercontext local -ax msgs local -Ax vcs_comm @@ -1831,6 +1855,15 @@ vcs_info () { # {{{ return 0 } zstyle -a ":vcs_info:${vcs}:${usercontext}" "disable" disabled + + zstyle -a ":vcs_info:${vcs}:${usercontext}" "disable-patterns" dps + for pat in ${dps} ; do + if [[ ${PWD} == ${~pat} ]] ; then + [[ -n ${vcs_info_msg_0_} ]] && VCS_INFO_set --clear + return 0 + fi + done + VCS_INFO_maxexports (( found = 0 )) @@ -2395,12 +2428,6 @@ grmlcomp() { fi' fi - # zstyle ':completion:*' completer _complete _correct _approximate - # zstyle ':completion:*' expand prefix suffix - - # complete shell aliases - # zstyle ':completion:*' completer _expand_alias _complete _approximate - # command for process lists, the local web server details and host completion zstyle ':completion:*:urls' local 'www' '/var/www/' 'public_html' @@ -2424,30 +2451,9 @@ grmlcomp() { localhost ) zstyle ':completion:*:hosts' hosts $hosts + # TODO: so, why is this here? # zstyle '*' hosts $hosts - # specify your logins: - # my_accounts=( - # {grml,grml1}@foo.invalid - # grml-devel@bar.invalid - # ) - # other_accounts=( - # {fred,root}@foo.invalid - # vera@bar.invalid - # ) - # zstyle ':completion:*:my-accounts' users-hosts $my_accounts - # zstyle ':completion:*:other-accounts' users-hosts $other_accounts - - # specify specific port/service settings: - # telnet_users_hosts_ports=( - # user1@host1: - # user2@host2: - # @mail-server:{smtp,pop3} - # @news-server:nntp - # @proxy-server:8000 - # ) - # zstyle ':completion:*:*:telnet:*' users-hosts-ports $telnet_users_hosts_ports - # use generic completion system for programs not yet defined; (_gnu_generic works # with commands that provide a --help option with "standard" gnu-like output.) compdef _gnu_generic tail head feh cp mv df stow uname ipacsum fetchipac @@ -2566,9 +2572,6 @@ if check_com qma ; then compdef _man qma else manzsh() { /usr/bin/man zshall | vim -c "se ft=man| se hlsearch" +/"$1" - ; } - # 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 ; } fi if check_com -c $PAGER ; then @@ -2839,14 +2842,6 @@ bk() { cp -a "$1" "${1}_$(date --iso-8601=seconds)" } -# Switching shell safely and efficiently? http://www.zsh.org/mla/workers/2001/msg02410.html -# bash() { -# NO_SWITCH="yes" command bash "$@" -# } -# restart () { -# exec $SHELL $SHELL_ARGS "$@" -# } - #f1# grep for patterns in grml's zsh setup zg() { #{{{ @@ -2906,14 +2901,6 @@ exit 0; # }}} -# log out? set timeout in seconds {{{ -# TMOUT=1800 -# do not log out in some specific terminals: -# if [[ "${TERM}" == ([Exa]term*|rxvt|dtterm|screen*) ]] ; then -# unset TMOUT -# fi -# }}} - # {{{ make sure our environment is clean regarding colors for color in BLUE RED GREEN CYAN YELLOW MAGENTA WHITE ; unset $color # }}} @@ -2929,23 +2916,12 @@ if [[ -r ~/.important_commands ]] ; then fi # }}} -## genrefcard.pl settings {{{ -### example: split functions-search 8,16,24,32 -#@# split functions-search 8 -## }}} - #:grep:marker:for:mika: :-) ### non-root (EUID != 0) code below ### (( GRML_ALWAYS_LOAD_ALL == 0 )) && (( $EUID == 0 )) && return 0 -# autoloading stuff {{{ -# associate types and extensions (be aware with perl scripts and anwanted behaviour!) -# check_com zsh-mime-setup || { autoload zsh-mime-setup && zsh-mime-setup } -# alias -s pl='perl -S' -# }}} - # variables {{{ # set terminal property (used e.g. by msgid-chooser) @@ -2971,46 +2947,6 @@ fi [[ -f /usr/share/classpath/glibj.zip ]] && export JIKESPATH=/usr/share/classpath/glibj.zip # }}} -# set options {{{ - -# Allow comments even in interactive shells i. e. -# $ uname # This command prints system informations -# zsh: bad pattern: # -# $ setopt interactivecomments -# $ uname # This command prints system informations -# Linux -# setopt interactivecomments - -# ctrl-s will no longer freeze the terminal. -# stty erase "^?" - -# }}} - -# {{{ global aliases -# These do not have to be at the beginning of the command line. -# Avoid typing cd ../../ for going two dirs down and so on -# Usage, e.g.: "$ cd ...' or just '$ ...' with 'setopt auto_cd' -# Notice: deactivated by 061112 by default, we use another approach -# known as "power completion / abbreviation expansion" -# alias -g '...'='../..' -# alias -g '....'='../../..' -# alias -g BG='& exit' -# alias -g C='|wc -l' -# alias -g G='|grep' -# alias -g H='|head' -# alias -g Hl=' --help |& less -r' -# alias -g K='|keep' -# alias -g L='|less' -# alias -g LL='|& less -r' -# alias -g M='|most' -# alias -g N='&>/dev/null' -# alias -g R='| tr A-z N-za-m' -# alias -g SL='| sort | less' -# alias -g S='| sort' -# alias -g T='|tail' -# alias -g V='| vim -' -# }}} - # aliases {{{ # Xterm resizing-fu. @@ -3024,16 +2960,12 @@ alias large='echo -en "\033]50;-misc-fixed-medium-r-normal-*-*-150-*-*-c-*-iso88 alias huge='echo -en "\033]50;-misc-fixed-medium-r-normal-*-*-210-*-*-c-*-iso8859-15\007"' alias smartfont='echo -en "\033]50;-artwiz-smoothansi-*-*-*-*-*-*-*-*-*-*-*-*\007"' alias semifont='echo -en "\033]50;-misc-fixed-medium-r-semicondensed-*-*-120-*-*-*-*-iso8859-15\007"' -# if [[ "$TERM" == "xterm" ]] && [[ "$LINES" -ge 50 ]] && [[ "$COLUMNS" -ge 100 ]] && [[ -z "$SSH_CONNECTION" ]] ; then -# large -# fi # general #a2# Execute \kbd{du -sch} alias da='du -sch' #a2# Execute \kbd{jobs -l} alias j='jobs -l' -# alias u='translate -i' # translate # compile stuff #a2# Execute \kbd{./configure} @@ -3042,6 +2974,7 @@ alias CO="./configure" alias CH="./configure --help" # http://conkeror.mozdev.org/ +# TODO: I think this should be removed, as conkeror is not a simple extension anymore #a2# Run a keyboard driven firefox alias conkeror='firefox -chrome chrome://conkeror/content' @@ -3111,8 +3044,6 @@ alias fbmplayer='mplayer -vo fbdev -fs -zoom' #a2# Execute \kbd{links2 -driver fb} alias fblinks='links2 -driver fb' -# ignore ~/.ssh/known_hosts entries -# alias insecssh='ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null" -o "PreferredAuthentications=keyboard-interactive"' #a2# ssh with StrictHostKeyChecking=no \\&\quad and UserKnownHostsFile unset alias insecssh='ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null"' alias insecscp='scp -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null"' @@ -3329,7 +3260,6 @@ alias GREP='grep -i --color=auto' # one blank line between each line if [[ -r ~/.terminfo/m/mostlike ]] ; then -# alias man2='MANPAGER="sed -e G |less" TERMINFO=~/.terminfo TERM=mostlike /usr/bin/man' #f5# Watch manpages in a stretched style man2() { PAGER='dash -c "sed G | /usr/bin/less"' TERM=mostlike /usr/bin/man "$@" ; } fi @@ -3410,22 +3340,6 @@ trans() { esac } -# Some quick Perl-hacks aka /useful/ oneliner -# bew() { perl -le 'print unpack "B*","'$1'"' } -# web() { perl -le 'print pack "B*","'$1'"' } -# hew() { perl -le 'print unpack "H*","'$1'"' } -# weh() { perl -le 'print pack "H*","'$1'"' } -# pversion() { perl -M$1 -le "print $1->VERSION" } # i. e."pversion LWP -> 5.79" -# getlinks () { perl -ne 'while ( m/"((www|ftp|http):\/\/.*?)"/gc ) { print $1, "\n"; }' $* } -# gethrefs () { perl -ne 'while ( m/href="([^"]*)"/gc ) { print $1, "\n"; }' $* } -# getanames () { perl -ne 'while ( m/a name="([^"]*)"/gc ) { print $1, "\n"; }' $* } -# getforms () { perl -ne 'while ( m:(\):gic ) { print $1, "\n"; }' $* } -# getstrings () { perl -ne 'while ( m/"(.*?)"/gc ) { print $1, "\n"; }' $*} -# getanchors () { perl -ne 'while ( m/«([^«»\n]+)»/gc ) { print $1, "\n"; }' $* } -# 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 *" } - #f5# List all occurrences of programm in current PATH plap() { if [[ $# = 0 ]] ; then @@ -4187,6 +4101,7 @@ gethgsnap() { # }}} # some useful commands often hard to remember - let's grep for them {{{ +# actually use our zg() function now. :) # Work around ion/xterm resize bug. #if [[ "$SHLVL" -eq 1 ]]; then @@ -4267,9 +4182,15 @@ xsource "${HOME}/.zshrc.local" # }}} -### doc strings for external functions from files {{{ +## genrefcard.pl settings {{{ + +### doc strings for external functions from files #m# f5 grml-wallpaper() Sets a wallpaper (try completion for possible values) -#}}} + +### example: split functions-search 8,16,24,32 +#@# split functions-search 8 + +## }}} ## END OF FILE ################################################################# # vim:filetype=zsh foldmethod=marker autoindent expandtab shiftwidth=4