X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=9f3d87a94e8e5d46b8460891edaa7f56dd7aeda2;hb=9663863a1c17ded15cc687a06ede6305a6e48b26;hp=cf15db68a6feafc0ee5bb9bcc913366ed5651739;hpb=c0fd246d36df74a7f36b8c3ce25a2e2d6250a4ed;p=grml-etc-core.git diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index cf15db6..9f3d87a 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -1,4 +1,4 @@ -# Filename: zshrc +# Filename: /etc/zsh/zshrc # Purpose: config file for zsh (z shell) # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ @@ -12,10 +12,10 @@ ################################################################################ # zsh-refcard-tag documentation: {{{ -# You may notice strange looking comments in the zshrc (and ~/.zshrc as -# well). These are there for a purpose. grml's zsh-refcard can now be +# You may notice strange looking comments in this file. +# These are there for a purpose. grml's zsh-refcard can now be # automatically generated from the contents of the actual configuration -# files. However, we need a little extra information on which comments +# file. However, we need a little extra information on which comments # and what lines of code to take into account (and for what purpose). # # Here is what they mean: @@ -91,19 +91,9 @@ if [[ $ZSH_PROFILE_RC -gt 0 ]] ; then fi # }}} -# setting some default values {{{ - # load .zshrc.pre to give the user the chance to overwrite the defaults [[ -r ${HOME}/.zshrc.pre ]] && source ${HOME}/.zshrc.pre -NOCOR=${NOCOR:-0} -NOMENU=${NOMENU:-0} -NOPRECMD=${NOPRECMD:-0} -BATTERY=${BATTERY:-0} -GRMLSMALL_SPECIFIC=${GRMLSMALL_SPECIFIC:-1} -GRML_ALWAYS_LOAD_ALL=${GRML_ALWAYS_LOAD_ALL:-0} -# }}} - # {{{ check for version/system # check for versions (compatibility reasons) is4(){ @@ -152,6 +142,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 @@ -200,6 +195,118 @@ if ! [[ ${ZSH_VERSION} == 3.1.<7->* \ function zstyle() { : } fi +# autoload wrapper - use this one instead of autoload directly +# We need to define this function as early as this, because autoloading +# 'is-at-least()' needs it. +function zrcautoload() { + setopt local_options extended_glob + local fdir ffile + local -i ffound + + ffile=${1} + (( found = 0 )) + for fdir in ${fpath} ; do + [[ -e ${fdir}/${ffile} ]] && (( ffound = 1 )) + done + + (( ffound == 0 )) && return 1 + if [[ $ZSH_VERSION == 3.1.<6-> || $ZSH_VERSION == <4->* ]] ; then + autoload -U ${ffile} || return 1 + else + autoload ${ffile} || return 1 + fi + return 0 +} + +# Load is-at-least() for more precise version checks +# Note that this test will *always* fail, if the is-at-least +# function could not be marked for autoloading. +zrcautoload is-at-least || is-at-least() { return 1 } + +# }}} + +# setting some default values {{{ + +NOCOR=${NOCOR:-0} +NOMENU=${NOMENU:-0} +NOPRECMD=${NOPRECMD:-0} +BATTERY=${BATTERY:-0} +GRMLSMALL_SPECIFIC=${GRMLSMALL_SPECIFIC:-1} +GRML_ALWAYS_LOAD_ALL=${GRML_ALWAYS_LOAD_ALL:-0} + +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 + +function grml_warn_skel_main() { + 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 (available at +) 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. + +' +} + +function grml_warn_skel_remove() { + printf 'To remove this warning execute '\''grml_do_not_warn_skel'\''.\n\n' +} + +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 +} + +# let's try to guess how the user uses us. +if is-at-least 4.3.7 ; then + # funcsourcetrace requires at least version 4.3.7 of zsh. + GRML_SRC_FILE="${${funcsourcetrace[1]}%:*}" + + grml_warn_skel_main + case ${GRML_SRC_FILE} in + (${HOME}/.zshrc.global) + grml_warn_skel_remove + printf '\nIt looks like you copied the grml zshrc to '\''~/.zshrc.global'\''.\n' + printf 'Nowadays you just copy the global zshrc to '\''~/.zshrc'\'' to use\n' + printf 'it on a non-grml-system.\n' + ;; + (${HOME}/.zshrc) + printf '\nIt looks like you copied the grml zshrc to '\''~/.zshrc'\''.\n' + printf 'We'\''ll disable this warning automatically for later sessions.\n' + grml_do_not_warn_skel + ;; + (*) + grml_do_not_warn_skel + ;; + esac +else + grml_warn_skel_main + grml_warn_skel_remove +fi + +unfunction grml_warn_skel_remove grml_warn_skel_main + +fi # GRML_WARN_SKEL + # }}} # utility functions {{{ @@ -336,37 +443,8 @@ xunfunction() { return 0 } -# autoload wrapper - use this one instead of autoload directly -function zrcautoload() { - setopt local_options extended_glob - local fdir ffile - local -i ffound - - ffile=${1} - (( found = 0 )) - for fdir in ${fpath} ; do - [[ -e ${fdir}/${ffile} ]] && (( ffound = 1 )) - done - - (( ffound == 0 )) && return 1 - if [[ $ZSH_VERSION == 3.1.<6-> || $ZSH_VERSION == <4->* ]] ; then - autoload -U ${ffile} || return 1 - else - autoload ${ffile} || return 1 - fi - return 0 -} - #}}} -# Load is-at-least() for more precise version checks {{{ - -# Note that this test will *always* fail, if the is-at-least -# function could not be marked for autoloading. -zrcautoload is-at-least || is-at-least() { return 1 } - -# }}} - # locale setup {{{ if [[ -z "$LANG" ]] ; then xsource "/etc/default/locale" @@ -427,12 +505,18 @@ export SHELL='/bin/zsh' # color setup for ls: check_com -c dircolors && eval $(dircolors -b) - -# set width of man pages to 80 for more convenient reading -# export MANWIDTH=${MANWIDTH:-80} - -# Search path for the cd command -# cdpath=(.. ~) +# 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 # completion functions go to /etc/zsh/completion.d # function files may be put into /etc/zsh/functions.d, from where they @@ -846,12 +930,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 +950,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 +997,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 +1008,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 +1018,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 +1263,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 +1288,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 +1853,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 +1888,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 )) @@ -1992,12 +2058,14 @@ hash -d www=/var/www # }}} # {{{ some aliases -if [[ $UID -eq 0 ]] ; then - [[ -r /etc/grml/screenrc ]] && alias screen='/usr/bin/screen -c /etc/grml/screenrc' -elif [[ -r $HOME/.screenrc ]] ; then - alias screen="/usr/bin/screen -c $HOME/.screenrc" -else - [[ -r /etc/grml/screenrc_grml ]] && alias screen='/usr/bin/screen -c /etc/grml/screenrc_grml' +if check_com -c screen ; then + if [[ $UID -eq 0 ]] ; then + [[ -r /etc/grml/screenrc ]] && alias screen="${commands[screen]} -c /etc/grml/screenrc" + elif [[ -r $HOME/.screenrc ]] ; then + alias screen="${commands[screen]} -c $HOME/.screenrc" + else + [[ -r /etc/grml/screenrc_grml ]] && alias screen="${commands[screen]} -c /etc/grml/screenrc_grml" + fi fi # do we have GNU ls with color-support? @@ -2112,25 +2180,29 @@ zsh-help - hints for use of zsh on grml =======================================$reset_color" print ' -Main configuration of zsh happens in /etc/zsh/zshrc (global) -and /etc/skel/.zshrc which is copied to $HOME/.zshrc once. -The files are part of the package grml-etc-core, if you want to +Main configuration of zsh happens in /etc/zsh/zshrc. +That file is part of the package grml-etc-core, if you want to use them on a non-grml-system just get the tar.gz from -http://deb.grml.org/ or get the files from the mercurial -repository: +http://deb.grml.org/ or (preferably) get it from the git repository: - http://git.grml.org/?p=grml-etc-core.git;a=blob_plain;f=etc/zsh/zshrc - http://git.grml.org/?p=grml-etc-core.git;a=blob_plain;f=etc/skel/.zshrc + http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc -If you want to stay in sync with zsh configuration of grml -run '\''ln -sf /etc/skel/.zshrc $HOME/.zshrc'\'' and configure -your own stuff in $HOME/.zshrc.local. System wide configuration -without touching configuration files of grml can take place -in /etc/zsh/zshrc.local. +This version of grml'\''s zsh setup does not use skel/.zshrc anymore. +The file is still there, but it is empty for backwards compatibility. -If you want to use the configuration of user grml also when -running as user root just run '\''zshskel'\'' which will source -the file /etc/skel/.zshrc. +For your own changes use these two files: + $HOME/.zshrc.pre + $HOME/.zshrc.local + +The former is sourced very early in our zshrc, the latter is sourced +very lately. + +System wide configuration without touching configuration files of grml +can take place in /etc/zsh/zshrc.local. + +Normally, the root user (EUID == 0) does not get the whole grml setup. +If you want to force the whole setup for that user, too, set +GRML_ALWAYS_LOAD_ALL=1 in .zshrc.pre in root'\''s home directory. For information regarding zsh start at http://grml.org/zsh/ @@ -2155,7 +2227,7 @@ the zsh yet. :) A value greater than 0 is enables a feature; a value equal to zero disables it. If you like one or the other of these settings, you can -add them to ~/.zshenv to ensure they are set when sourcing grml'\''s +add them to ~/.zshrc.pre to ensure they are set when sourcing grml'\''s zshrc.' print " @@ -2217,8 +2289,6 @@ if [[ -r /etc/debian_version ]] ; then alias llog="$PAGER /var/log/syslog" # take a look at the syslog #a1# Take a look at the syslog: \kbd{tail -f /var/log/syslog} alias tlog="tail -f /var/log/syslog" # follow the syslog - #a1# (Re)-source \kbd{/etc/skel/.zshrc} - alias zshskel="source /etc/skel/.zshrc" # source skeleton zshrc fi # sort installed Debian-packages by size @@ -2277,7 +2347,7 @@ limit -s # {{{ 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 @@ -2366,6 +2436,9 @@ grmlcomp() { zstyle ':completion:*:manuals.*' insert-sections true zstyle ':completion:*:man:*' menu yes select + # provide .. as a completion + zstyle ':completion:*' special-dirs .. + # run rehash on completion so new installed program are found automatically: _force_rehash() { (( CURRENT == 1 )) && rehash @@ -2393,12 +2466,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' @@ -2422,30 +2489,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 @@ -2564,9 +2610,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 @@ -2837,14 +2880,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() { #{{{ @@ -2904,21 +2939,12 @@ 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 # }}} # source another config file if present {{{ xsource "/etc/zsh/zshrc.local" -xsource "${HOME}/.zshenv" # }}} # "persistent history" {{{ @@ -2928,23 +2954,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) @@ -2970,46 +2985,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. @@ -3023,16 +2998,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} @@ -3041,6 +3012,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' @@ -3110,8 +3082,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"' @@ -3328,13 +3298,12 @@ 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 # d():Copyright 2005 Nikolai Weibull -# notice: option AUTO_PUSHD has to be set +# note: option AUTO_PUSHD has to be set #f5# Jump between directories d() { emulate -L zsh @@ -3409,22 +3378,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 @@ -3614,7 +3567,7 @@ status() { print "" print "Date..: "$(date "+%Y-%m-%d %H:%M:%S")"" print "Shell.: Zsh $ZSH_VERSION (PID = $$, $SHLVL nests)" - print "Term..: $TTY ($TERM), $BAUD bauds, $COLUMNS x $LINES cars" + print "Term..: $TTY ($TERM), ${BAUD:+$BAUD bauds, }$COLUMNS x $LINES cars" print "Login.: $LOGNAME (UID = $EUID) on $HOST" print "System: $(cat /etc/[A-Za-z]*[_-][rv]e[lr]*)" print "Uptime:$(uptime)" @@ -3887,16 +3840,21 @@ mkmaildir() { mkdir -p ${root}/${subdir}/{cur,new,tmp} } -# xtrename() rename xterm from within GNU-screen +#f5# Change the xterm title from within GNU-screen xtrename() { - if [[ -z ${DISPLAY} ]] ; then - printf 'xtrename only makes sense in X11.\n' - return 1 + if [[ ${1} != "-f" ]] ; then + if [[ -z ${DISPLAY} ]] ; then + printf 'xtrename only makes sense in X11.\n' + return 1 + fi + else + shift fi if [[ -z ${1} ]] ; then - printf 'usage: xtrename() "title for xterm"\n' + printf 'usage: xtrename [-f] "title for xterm"\n' printf ' renames the title of xterm from _within_ screen.\n' - printf ' Also works without screen.\n' + printf ' also works without screen.\n' + printf ' will not work if DISPLAY is unset, use -f to override.\n' return 0 fi print -n "\eP\e]0;${1}\C-G\e\\" @@ -4186,6 +4144,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 @@ -4266,9 +4225,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