X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=3b6d6de0fdaaa3bc3638d1ba308c9dadae5fc047;hb=24aab95cd888adc1a7bad3120174b88ba72b26af;hp=60623f84be84aeb0e8102dbcf86e70e8faa9d8f8;hpb=77190bf26c5ea55cfc3d4f7da080806cf022e70d;p=grml-etc-core.git diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 60623f8..3b6d6de 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -3,7 +3,7 @@ # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2. -# Latest change: Mit Jun 20 10:28:28 CEST 2007 [mika] +# Latest change: Mon Jul 02 18:17:08 CEST 2007 [mika] ################################################################################ # This file is sourced only for interactive shells. It # should contain commands to set up aliases, functions, @@ -11,6 +11,79 @@ # # Global Order: zshenv, zprofile, zshrc, zlogin ################################################################################ +# +# 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 +# automatically generated from the contents of the actual configuration +# files. 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: +#{{{ +# List of tags (comment types) used: +# #a# Next line contains an important alias, that should +# be included in the grml-zsh-refcard. +# (placement tag: @@INSERT-aliases@@) +# #f# Next line contains the beginning of an important function. +# (placement tag: @@INSERT-functions@@) +# #v# Next line contains an important variable. +# (placement tag: @@INSERT-variables@@) +# #k# Next line contains an important keybinding. +# (placement tag: @@INSERT-keybindings@@) +# #d# Hashed directories list generation: +# start denotes the start of a list of 'hash -d' +# definitions. +# end denotes its end. +# (placement tag: @@INSERT-hasheddirs@@) +# #A# Abbreviation expansion list generation: +# start denotes the beginning of abbreviations. +# end denotes their end. +# Lines within this section that end in '#d .*' provide +# extra documentation to be included in the refcard. +# (placement tag: @@INSERT-abbrev@@) +# #m# This tag allows you to manually generate refcard entries +# for code lines that are hard/impossible to parse. +# Example: +# #m# k ESC-h Call the run-help function +# That would add a refcard entry in the keybindings table +# for 'ESC-h' with the given comment. +# So the syntax is: #m#
+# #o# This tag lets you insert entries to the 'other' hash. +# Generally, this should not be used. It is there for +# things that cannot be done easily in another way. +# (placement tag: @@INSERT-other-foobar@@) +# +# All of these tags (except for m and o) take two arguments, the first +# within the tag, the other after the tag: +# +# #
# +# +# Where
is really just a number, which are defined by the +# @secmap array on top of 'genrefcard.pl'. The reason for numbers +# instead of names is, that for the reader, the tag should not differ +# much from a regular comment. For zsh, it is a regular comment indeed. +# The numbers have got the following meanings: +# 0 -> "default" +# 1 -> "system" +# 2 -> "user" +# 3 -> "debian" +# 4 -> "search" +# 5 -> "shortcuts" +# 6 -> "services" +# +# So, the following will add an entry to the 'functions' table in the +# 'system' section, with a (hopefully) descriptive comment: +# #f1# Edit an alias via zle +# edalias() { +# +# It will then show up in the @@INSERT-aliases-system@@ replacement tag +# that can be found in 'grml-zsh-refcard.tex.in'. +# If the section number is omitted, the 'default' section is assumed. +# Furthermore, in 'grml-zsh-refcard.tex.in' @@INSERT-aliases@@ is +# exactly the same as @@INSERT-aliases-default@@. If you want a list of +# *all* aliases, for example, use @@INSERT-aliases-all@@. +#}}} # zsh profiling {{{ # just execute 'ZSH_PROFILE_RC=1 zsh' and run 'zprof' to get the details @@ -165,7 +238,7 @@ [[ -f ~/.terminfo/m/mostlike ]] && MYLESS='LESS=C TERMINFO=~/.terminfo TERM=mostlike less' || MYLESS='less' [ -x $(which dircolors) ] && eval `dircolors -b` -# Search path for the cd comman +# Search path for the cd command # cdpath=(.. ~) # completion functions go to /etc/zsh/completion.d @@ -358,7 +431,7 @@ fi # fi alias url-quote='autoload -U url-quote-magic ; zle -N self-insert url-quote-magic' - #m# k ESC-h Call \kbd{run-help} for the 1st word on the commandline + #m# k ESC-h Call \kbd{run-help} for the 1st word on the command line alias run-help >&/dev/null && unalias run-help autoload run-help # use via 'esc-h' @@ -405,7 +478,7 @@ fi # press "ctrl-e d" to insert the actual date in the form yyyy-mm-dd _bkdate() { BUFFER="$BUFFER$(date '+%F')"; CURSOR=$#BUFFER; } - #k# Insert a timestamp on the commandline (yyyy-mm-dd) + #k# Insert a timestamp on the command line (yyyy-mm-dd) bindkey '^Ed' _bkdate zle -N _bkdate @@ -440,7 +513,7 @@ fi [[ $BUFFER != sudo\ * ]] && LBUFFER="sudo $LBUFFER" } zle -N sudo-command-line _sudo-command-line -#k# Put the current commandline into a \kbd{sudo} call +#k# Put the current command line into a \kbd{sudo} call bindkey "^Os" sudo-command-line ### jump behind the first word on the cmdline. @@ -496,7 +569,7 @@ fi setopt nobeep # avoid "beep"ing MAILCHECK=30 # mailchecks - REPORTTIME=5 # report about cpu-/system-/user-time of command if running longer than 5 secondes + 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,..) @@ -602,7 +675,7 @@ fi # get the name of the program currently running and hostname of local machine # set screen window title if running in a screen if [[ "$TERM" == screen* ]]; then - # local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} # dont't use hostname + # local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} # don't use hostname local CMD="${1[(wr)^(*=*|sudo|ssh|-*)]}$NAME" # use hostname echo -ne "\ek$CMD\e\\" fi @@ -716,6 +789,11 @@ ${BLUE}%n${NO_COLOUR}@%m %40<...<%B%~%b%<< %# " alias mdstat='cat /proc/mdstat' alias ...='cd ../../' + # generate alias named "$KERNELVERSION-reboot" so you can use boot with kexec: + if [ -x /sbin/kexec ] ; then + alias "$(uname -r)-reboot"="kexec -l --initrd=/boot/initrd.img-"$(uname -r)" --command-line=\"$(cat /proc/cmdline)\" /boot/vmlinuz-"$(uname -r)"" + fi + alias cp='nocorrect cp' # no spelling correction on cp alias mkdir='nocorrect mkdir' # no spelling correction on mkdir alias mv='nocorrect mv' # no spelling correction on mv @@ -896,7 +974,7 @@ Please use the wodim binary instead' ; return 1" } fi -# I hate lacking backward compability, so provide an alternative therefore +# I hate lacking backward compatibility, so provide an alternative therefore if ! [ -x $(which apache2-ssl-certificate) ] ; then apache2-ssl-certificate(){ @@ -1178,8 +1256,13 @@ If you want to use xinit anyway please call \"/usr/bin/xinit\"." if [ -r /usr/share/doc/${1}/changelog.Debian.gz ] ; then most /usr/share/doc/${1}/changelog.Debian.gz else - if [ -r /usr/share/doc/${1}/changelog.gz ] ; then - most /usr/share/doc/${1}/changelog.gz + if type -p aptitude &>/dev/null ; then + echo "No changelog for package $1 found, using aptitude to retrieve it." + if isgrml ; then + aptitude -t unstable changelog tsclient + else + aptitude changelog ${1} + fi else echo "No changelog for package $1 found, sorry." return 1 @@ -1245,8 +1328,6 @@ If you want to use xinit anyway please call \"/usr/bin/xinit\"." for i in Start Restart Stop Force-Reload Reload ; do eval "$i() { $SUDO /etc/init.d/\$1 ${i:l} \$2 ; }" done - # now the completion for this: - compctl -g "$(echo /etc/init.d/*(:t))" Start Restart Stop Force-Reload Reload fi #f1# Provides useful information on globbing @@ -1306,7 +1387,7 @@ If you want to use xinit anyway please call \"/usr/bin/xinit\"." fi } - # After resuming from suspend, system is paging heavilly, leading to very bad interactivity. + # After resuming from suspend, system is paging heavily, leading to very bad interactivity. # taken from $LINUX-KERNELSOURCE/Documentation/power/swsusp.txt [ -r /proc/1/maps ] && deswap() { print 'Reading /proc/[0-9]*/maps and sending output to /dev/null, this might take a while.' @@ -1340,13 +1421,8 @@ If you want to use xinit anyway please call \"/usr/bin/xinit\"." # just press 'asdf' keys to toggle between dvorak and us keyboard layout aoeu() { - if [ -n "$XKEYBOARD" -a -n "$KEYTABLE" ] ; then - echo -n "Switching to $KEYTABLE keyboard layout: " - [ -z "$DISPLAY" ] && $SUDO loadkeys $KEYTABLE &>/dev/null || setxkbmap $XKEYBOARD &>/dev/null - else - echo -n 'Switching to us keyboard layout: ' - [ -z "$DISPLAY" ] && $SUDO loadkeys us &>/dev/null || setxkbmap us &>/dev/null - fi + echo -n 'Switching to us keyboard layout: ' + [ -z "$DISPLAY" ] && $SUDO loadkeys us &>/dev/null || setxkbmap us &>/dev/null echo 'Done' } asdf() { @@ -1444,7 +1520,7 @@ If you want to use xinit anyway please call \"/usr/bin/xinit\"." # }}} ## genrefcard.pl settings {{{ -### example: split funtions-search 8,16,24,32 +### example: split functions-search 8,16,24,32 #@# split functions-search 8 ## }}}