GRMLZSHRC
-June, 2010
+July, 2011
%!target: man
%!postproc(man): "^(\.TH.*) 1 " "\1 5 "
= NAME =
-grmlzshrc - grml's zsh setup
+grmlzshrc - Grml's zsh setup
= SYNOPSIS =
= DESCRIPTION =
-The grml project provides a fairly exhaustive interactive setup (referred to
+The Grml project provides a fairly exhaustive interactive setup (referred to
as //grmlzshrc// throughout this document) for the amazing unix shell zsh
(http://zsh.sourceforge.net). This is the reference manual for that
setup.
//grmlzshrc// behaves differently depending on which user loads it. For the
root user (**EUID** == 0) only a subset of features is loaded by default. This
behaviour can be altered by setting the **GRML_ALWAYS_LOAD_ALL** STARTUP
-VARIABLE (see below). Also the umask(1) for the root user is set to 022,
-while for regular users it is set to 002. So read/write permissions
-for the regular user and her group are set for new files (keep that
-in mind on systems, where regular users share a common group).
+VARIABLE (see below).
+
+Users may want to keep an up-to-date version of the setup (possibly from the
+git-sources) in //~/.zshrc//. If that happens on a system where the global
+zshrc is also a //grmlzshrc// (but possibly an older one), you can inhibit
+loading the global version by doing:
+\
+```
+echo setopt no_global_rcs >> ~/.zshenv
+```
+
+Note, that this will disable //ANY// global files, except for the global
+zshenv file.
= STARTUP VARIABLES =
Some of the behaviour of //grmlzshrc// can be altered by setting certain shell
be found. The handler is defined by GRML_ZSH_CNF_HANDLER (see below).
: **GRML_ALWAYS_LOAD_ALL**
-Enables the whole grml setup for root, if set to a non zero value.
+Enables the whole Grml setup for root, if set to a non zero value.
: **GRML_ZSH_CNF_HANDLER**
This variable contains the handler to be used by COMMAND_NOT_FOUND (see above)
Where zsh saves the history. Default: ${HOME}/.zsh_history.
: **HISTSIZE**
-Number of commands to be kept in the history. On a grml-CD this defaults to
+Number of commands to be kept in the history. On a Grml-CD this defaults to
500, on a hard disk installation to 5000.
: **MAILCHECK**
than the defined number of seconds (default: 5).
: **SAVEHIST**
-Number of commands to be stored in ${HISTFILE}. Defaults to 1000 on a grml-CD
+Number of commands to be stored in ${HISTFILE}. Defaults to 1000 on a Grml-CD
and to 10000 on an installation on hard disk.
: **watch**
: **CTRL-x-1**
Jump right after the first word.
+: **CTRL-x-M()**
+Create directory under cursor or the selected area.
+To select an area press ctrl-@ and use the cursor.
+Use case: you type "mv abc ~/testa/testb/testc/" and remember that the
+directory does not exist yet -> press **CTRL-xM** and problem solved.
+
: **CTRL-x-p**
Searches the last occurence of string before the cursor in the command history.
+: **CTRL-x-z**
+Display help on keybindings and zsh line editor. Press consecutively to page through content.
+
: **CTRL-z**
Brings a job, which got suspended with CTRL-z back to foreground.
Converts plaintext files to HTML using vim. The output is written to
<filename>.html.
+: **2mp3_192()**
+Useful if you own players lacking ogg/flac support.
+Takes a list of "*.ogg" and "*.flac" files and transcodes them to mp3
+with a variable bitrate of at least 192, while preserving basic id3 tags.
+
: **855resolution()**
If 915resolution is available, issues a warning to the user to run it instead
to modify the resolution on intel graphics chipsets.
use the wodim binary instead. Wodim is the debian fork of Joerg Schillings
cdrecord.
+: **cdt()**
+Creates a temporary directory using mktemp. Then changes current
+working directory to it.
+
: **changed()**
Lists files in current directory, which have been changed within the
last N days. N is an integer to be passed as first and only argument.
: **cvss()**
Shows cvs status of given files.
-: **d()**
-Presents a numbered listing of the directory stack. Then changes current
-working directory to the one chosen by the user.
-
: **dchange()**
Shows the changelog of given package in $PAGER.
Prints specified range of (numbered) lines of a file.
Usage: linenr <start>[,<end>] <file>
+: **lsdisk()**
+Uses udev's /dev/disk to list block devices with their LABEL, UUID and IDs.
+
: **makereadable()**
Creates a PostScript and a PDF file (basename as first argument) from
source code files.
% ls -l *(e:'nt /reference/file':)
```
-: **ogg2mp3_192()**
-Recodes an ogg file to mp3 with a bitrate of 192.
-
: **oleo()**
Translates the given word using the english - german online
dictionary dict.leo.org.
ZSH_PROFILE_RC above).
: **purge()**
-Removes typical temporary files (i. e. files like "*~", ".*~", "#*#", "*.o",
-"a.out", "*.core", "*.cmo", "*.cmi" and ".*.swp") from current directory.
-Asks for confirmation.
+Removes temporary files from current directory. Asks for confirmation. Uses sudo if necessary.
+In detail it purges
+ - common temp files like "*~", ".*~", "#*#", "*.o", "a.out", "*.orig", "*.rej", "*.cmo", "*.cmi" and ".*.swp"
+ - core dumps
+ - debconf backup files: "*.dpkg-old", "*.dkpg-new", "*.dpkg-dist"
+ - gentoo dispatch-conf backups: ".cfg0000_*", ".mrg0000_*"
+ - precompiled python code ("*.pyc", "*.pyo") as long as matching "*.py" source is also present
+ - LaTeX temp files i.e. "*.(log|toc|aux|nav|snm|out|tex.backup|bbl|blg|bib.backup|vrb|lof|lot|hd|idx)" for any present "*.tex"
+ - ghc temp files, as long as matching "*.hs" or "*.lhs" is also present
+ - "*.mood(D)" Files which are missing their corresponding audio file
: **readme()**
Opens all README-like files in current working directory with the program
Checks whether a regular expression (first parameter) matches a string
(second parameter) using perl.
+: **rundirs()**
+Takes as first parameter a quoted string containing an exectuable command or function with arguments.
+Following that it takes a bunch of directories, which will then be traversed, executing the
+first argument in each one. E.g.: rundirs purge . **/*(/-/)
+
: **salias()**
Creates an alias whith sudo prepended, if $EUID is not zero. Run "salias -h"
for details. See also xunfunction() below.
Shows the content of a zip archive in default pager.
: **simple-extract()**
-Tries to uncompress/unpack given file with the appropriate programs. The
-choice is made along the filename ending.
+Tries to uncompress/unpack given files with the appropriate programs. If an URI
+starting with https, http or ftp is provided simple-extract tries to download
+and then uncompress/unpack the file. The choice is made along the filename
+ending. simple-extract will not delete the original archive (even on .gz,.bz2 or
+.xz) unless you use the '-d' option.
: **sll()**
Prints details of symlinks given as arguments.
% Restart ssh
```
-: **startx()**
-Initializes an X session using startx(1) if /etc/X11/xorg.conf exists, else
-issues a Warning to use the grml-x(1) script. Can be overridden by using
-/usr/bin/startx directly.
-
: **status()**
Shows some information about current system status.
Tries to cat(1) file(s) given as parameter(s). Always returns true.
See also xunfunction() below.
-: **xinit()**
-Initializes an X session using xinit(1) if /etc/X11/xorg.conf exists, else
-issues a Warning to use the grml-x(1) script. Can be overridden by using
-/usr/bin/xinit directly.
-
: **xsource()**
Tries to source the file(s) given as parameter(s). Always returns true.
See zshbuiltins(1) for a detailed description of the source command.
= COPYRIGHT =
-Copyright (c) 2009-2010 grml project <http://grml.org>
+Copyright (c) 2009-2011 Grml project <http://grml.org>
This manpage is distributed under the terms of the GPL version 2.
Most parts of grml's zshrc are distributed under the terms of GPL v2, too,
-except for **accept-line()** and **vcs_info()**, which are distributed under
-the same conditions as zsh itself (which is BSD-like).
+except for **accept-line()** which are distributed under the same conditions
+as zsh itself (which is BSD-like).