zshrcmanual

################################################################################
#
# Okay then, here is a list of items that need to be documented in the
# reference manual for grml's zsh setup.
#
# If you plan to work on one item, go to the line, open a new line and tell
# who you are (a nickname would be enough) and when you made the entry (here
# the output of 'date -u' would make sense to be independent of timezones).
# So, for example:
#
#   setopt append_history
#       ft, Tue Aug  4 08:35:28 UTC 2009
#
# The easiest picks are probably functions, aliases and a few keybindings.
# It is probably also a good idea to start off documenting items that you are
# using yourself.

# The workflow you need to apply will probably look something like this:
#   1. pick an item
#   2. change the wikipage so people know you're working on it.
#      (two people working on the same thing without knowing about each other
#       would suck. a lot.)
#   3. Find the position in the actual zshrc, that defines the item you are
#      documenting.
#   4. Read the code.
#   5. Understand the code. :-)
#   6. Write an item in the grmlzshrc.t2t file (at a reasonable position).
#
# When you are happy with what you've written:
#   7. Commit your changes ('man git-commit')
#   8. Create a patch - or patches if you got more ('man git-format-patch')
#   9. Finally send your patch(es) to the mail address mentioned below.
#      (preferably via 'git send-email' - see 'man git-send-email' for details)
#
# If you have any questions, please contact: grml-etc-core <at> grml.org
#
# See also: http://lists.mur.at/pipermail/grml/2009-August/004609.html
#
# If you are a first time git user, here is a number of places, that you
# may find helpful:
#
# http://progit.org/book/
# http://book.git-scm.com/
# http://git-scm.com/documentation
# man 7 gittutorial
# man 7 gittutorial-2
# man 7 gitworkflows
#
# And for people capable of reading German texts (maybe the command transcripts
# are useful for people who can't, too), an introduction into git format-patch
# and git send-email:
# http://bewatermyfriend.org/posts/2007/10-02.17-22-07-computer.html
################################################################################

# variables (that are *not* exported):

# environment variables:
export JIKESPATH
# J"oW"o (Fri Sep 11 16:22:11 UTC 2009)

check_com -c dircolors && eval $(dircolors -b)
isdarwin && export CLICOLOR=1

# do MacPorts setup on darwin
if isdarwin && [[ -d /opt/local ]]; then
    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

# load our function and completion directories
for fdir in /usr/share/grml/zsh/completion /usr/share/grml/functions; do
    fpath=( ${fdir} ${fdir}/**/*(/N) ${fpath} )
    if [[ ${fpath} == '/usr/share/grml/zsh/functions' ]] ; then
        for func in ${fdir}/**/[^_]*[^~](N.) ; do
            zrcautoload ${func:t}
        done
    fi
done

for mod in complist deltochar mathfunc ; do
    zmodload -i zsh/${mod} 2>/dev/null || print "Notice: no ${mod} available :("
done

tmpargs=(
    a   stat
    a   zpty
    ap  mapfile
)
while (( ${#tmpargs} > 0 )) ; do
    zmodload -${tmpargs[1]} zsh/${tmpargs[2]} ${tmpargs[2]}
    shift 2 tmpargs
done

grmlcomp() {
    # grml's completion setup as a whole could use a section in the manual
}

# Change vcs_info formats for the grml prompt. The 2nd format sets up
# $vcs_info_msg_1_ to contain "zsh: repo-name" used to set our screen title.
zstyle ':vcs_info:*' actionformats "${MAGENTA}(${NO_COLOUR}%s${MAGENTA})${YELLOW}-${MAGENTA}[${GREEN}%b${YELLOW}|${RED}%a${MAGENTA}]${NO_COLOUR} " \
                                    "zsh: %r"
zstyle ':vcs_info:*' formats       "${MAGENTA}(${NO_COLOUR}%s${MAGENTA})${YELLOW}-${MAGENTA}[${GREEN}%b${MAGENTA}]${NO_COLOUR}%} " \
                                    "zsh: %r"
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat "%b${RED}:${YELLOW}%r"

# keybindings:
bindkey -e
J"oW"o (Sat Aug 28 16:54:47 UTC 2010)
bindkey -M emacs "$terminfo[kdch1]" delete-char
J"oW"o (Sat Aug 28 16:54:47 UTC 2010)
bindkey -M emacs "$terminfo[khome]" beginning-of-line
J"oW"o (Sat Aug 28 16:54:47 UTC 2010)
bindkey -M emacs "$terminfo[kend]"  end-of-line
J"oW"o (Sat Aug 28 16:54:47 UTC 2010)
bindkey -M vicmd "$terminfo[kdch1]" vi-delete-char
J"oW"o (Sat Aug 28 16:54:47 UTC 2010)
bindkey -M vicmd "$terminfo[khome]" vi-beginning-of-line
J"oW"o (Sat Aug 28 16:54:47 UTC 2010)
bindkey -M vicmd "$terminfo[kend]"  vi-end-of-line
J"oW"o (Sat Aug 28 16:54:47 UTC 2010)
bindkey -M viins "$terminfo[cuu1]"  vi-up-line-or-history
bindkey -M viins "$terminfo[cuf1]"  vi-forward-char
bindkey -M viins "$terminfo[kcuu1]" vi-up-line-or-history
bindkey -M viins "$terminfo[kcud1]" vi-down-line-or-history
bindkey -M viins "$terminfo[kcuf1]" vi-forward-char
bindkey -M viins "$terminfo[kcub1]" vi-backward-char
bindkey '^xP' history-beginning-search-forward
bindkey '^Xi' insert-unicode-char
bindkey '^xA' grml_toggle_abbrev
bindkey "^x^h" commit-to-history
bindkey "^Xf" insert-files
bindkey ' '   magic-space
bindkey '\ei' menu-complete
bindkey -M menuselect '\e^M' accept-and-menu-complete
bindkey -M menuselect '^o' accept-and-infer-next-history
bindkey '^Ed' _bkdate
bindkey "\em" insert-last-typed-word
bindkey "^Os" sudo-command-line

# buffer expansion
# see http://zshwiki.org/home/examples/zleiab for details
# less risky than the global aliases but powerful as well
# just type the abbreviation key and afterwards ',.' to expand it
bindkey ",." globalias

zrcautoload run-help # use via 'esc-h'

# hashed directories:
hash -d deb=
hash -d doc=
hash -d linux=
hash -d log=
hash -d slog=
hash -d src=
hash -d templ=
hash -d tt=
hash -d www=

# Functions:
#   I've seen that some of these functions are doubling the features of others.
#   Also, I'm not completely conviced all of these functions are too useful.
#   If you're unsure about any of the functions after reading their code,
#   contact us via email at the address mentioned on top of this page.

# Aliases:
 
zshrcmanual.txt · Last modified: 2011/10/13 21:55 (external edit)
 
Recent changes RSS feed Creative Commons License Valid XHTML 1.0 Valid CSS Grml homepage Driven by DokuWiki