A non zero value activates a handler, which is called when a command can not
be found. The handler is defined by GRML_ZSH_CNF_HANDLER (see below).
+: **GRML_COMP_CACHING**
+If set to //yes// (the default), the setup will enable zsh's completion caching
+mechanism, with the caching data being placed into //$GRML_COMP_CACHE_DIR//.
+
+: **GRML_COMP_CACHE_DIR**
+This defines where zsh's completion caching data will be placed, if
+//$GRML_COMP_CACHING// is active. The default is //${ZDOTDIR:-$HOME}/.cache//.
+The setup will ensure the directory exists before attempting to use it.
+
: **GRML_DISPLAY_BATTERY**
If set to a value greater than zero, //grmlzshrc// will put the battery status
into the right hand side interactive prompt. Supported OSes are //GNU/Linux//,
This variable contains the handler to be used by COMMAND_NOT_FOUND (see above)
and defaults to "/usr/share/command-not-found/command-not-found".
+: **GRML_NO_APT_ALIASES**
+A non-empty value inhibits the definition of apt-specific short aliases,
+such as ag, agi, ati etc.
+
+: **GRML_NO_SMALL_ALIASES**
+A non-empty value inhibits the definition of 2-letter aliases such as da.
+ls, ll, la and other common ls-related aliases are exempt from this, as are
+the aliases inhibited by GRML_NO_APT_ALIASES.
+
: **GRMLSMALL_SPECIFIC**
Set this to zero to remove items in zsh config, which do not work in
grml-small.
Specifies the location of the completion dump file. Default: $HOME/.zcompdump.
+= GRML-ZSHRC SPECIFIC STYLES =
+
+Styles are a context sensitive configuration mechanism included with zsh. The
+shell uses it extensively in sub-systems like the completion and the VCS info
+system. It lives outside of the classic shell variable namespace, so it avoids
+polluting it. New functionality in grml's zshrc will likely use styles instead
+of variables. Some features of the setup (like the directory stack handling)
+already use styles. Those styles are documented with the specific features.
+This section documents more general styles.
+
+== Context: :grml:completion:compinit ==
+This context revolves around the zshrc's //compinit// function call, that
+initialises zsh's function based completion system.
+
+: **arguments**
+This style allows the injection of arguments to the command line that is used
+to run compinit. It is a list style and its default is the empty list. Using
+this style, it's possible to add **-i** to //compinit// in order to disable
+//compaudit//.
+\
+```
+zstyle ':grml:completion:compinit' arguments -i
+```
+\
+Only do this, if you know what sort of security checks are disabled if
+//compaudit// is not active and if that's acceptable with your specific setup.
+\
+This style has to be set at the point that Grml's zshrc runs //compinit//. A
+possible way to achieve this is to set it in //~/.zshrc.pre// (see AUXILIARY
+FILES below for details).
+
+
= FEATURE DESCRIPTION =
This is an in depth description of non-standard features implemented by
//grmlzshrc//.
zshs inherit the dirstack of the zsh that most recently updated
**DIRSTACKFILE**.
+If you would like to //disable// the persistent dirstack feature altogether,
+you can do that by setting the boolean //enable// style to //false// in the
+right context (the default is //true//):
+\
+```
+zstyle ':grml:chpwd:dirstack' enable false
+```
+
It is possible to apply a filter to the names of directories that will be
committed to the persistent dirstack file. There are two ways to configure this
filter: A general function based filter and a pattern based filter. Both are
zstyle ':grml:chpwd:dirstack' filter-on-load true
```
-Setting the //filter-on-load// needs to be done in ".zshrc.pre" because the
-style needs to be set when the main setup is executing! The other styles do not
-have this limitation, but the initial filtering will obviously be done using
-the filters that are configured **at** **that** **point**. The rule of thumb
-is: If you want to filter on load, setup everything in ".zshrc.pre" otherwise
-".zshrc.local" works just as well.
+Setting the //filter-on-load// and //enable// styles needs to be done in
+".zshrc.pre" because the styles need to be set when the main setup is
+executing! The other styles do not have this limitation, but enabling the
+system as well as the initial filtering will obviously be done using settings
+and filters that are configured **at** **that** **point**.
+
+With respect to //filter-on-load//, the rule of thumb is: If you want to filter
+on load, setup everything in ".zshrc.pre" otherwise ".zshrc.local" works just
+as well.
== DIRECTORY BASED PROFILES ==
than zero, in which case **grml-large** is used. Lastly, if //$GRML_CHROOT// is
non-empty, **grml-chroot** is used.
-As usual, with promtinit themes, the user may switch to a different theme using
+As usual, with promptinit themes, the user may switch to a different theme using
the //prompt// utility:
\
```
== PERSISTENT HISTORY ==
If you got commands you consider important enough to be included in every
-shell's history, you can put them into ~/.important_commands and they will be
-available via the usual history lookup widgets.
+shell's history, you can put them into $GRML_IMPORTANT_COMMANDS (which defaults
+for backward compatibility to ~/.important_commands) and they will be available
+via the usual history lookup widgets.
= REFERENCE =
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.
+Searches the last occurrence 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.
=== Customisation ===
To customise keybindings, you can just use zsh's bindkey utility. However, if
-you plan to to use the `//zle-line-init//' or `//zle-line-finish//' hooks
+you plan to use the `//zle-line-init//' or `//zle-line-finish//' hooks
yourself, make sure you call the following functions in the respective hook:
- **zle-line-init**: //zle-smkx//
ZSH_PROFILE_RC above).
: **salias()**
-Creates an alias whith sudo prepended, if $EUID is not zero. Run "salias -h"
+Creates an alias with sudo prepended, if $EUID is not zero. Run "salias -h"
for details. See also xunfunction() below.
: **simple-extract()**
is given, it displays detailed information about the priority selection of the
package.
-: **acs** (//apt-cache search//)
+: **acs** (//apt search//)
Searches debian package lists for the regular expression provided as argument.
The search includes package names and descriptions. Prints out name and short
description of matching packages.
-: **acsh** (//apt-cache show//)
+: **acsh** (//apt show//)
Shows the package records for the packages provided as arguments.
-: **adg** (//apt-get dist-upgrade//)
+: **adg** (//apt dist-upgrade//)
Performs an upgrade of all installed packages. Also tries to automatically
handle changing dependencies with new versions of packages. As this may change
the install status of (or even remove) installed packages, it is potentially
dangerous to use dist-upgrade; invoked by sudo, if necessary.
-: **ag** (//apt-get upgrade//)
+: **ag** (//apt upgrade//)
Downloads and installs the newest versions of all packages currently installed
on the system. Under no circumstances are currently installed packages removed,
or packages not already installed retrieved and installed. New versions of
status of another package will be left at their current version. An update must
be performed first (see au below); run by sudo, if necessary.
-: **agi** (//apt-get install//)
+: **agi** (//apt install//)
Downloads and installs or upgrades the packages given on the command line.
If a hyphen is appended to the package name, the identified package will be
removed if it is installed. Similarly a plus sign can be used to designate a
-package to install. This may be useful to override decisions made by apt-get's
+package to install. This may be useful to override decisions made by apt's
conflict resolution system.
A specific version of a package can be selected for installation by following
the package name with an equals and the version of the package to select. This
: **ati** (//aptitude install//)
Aptitude is a terminal-based package manager with a command line mode similar to
-apt-get (see agi above); invoked by sudo, if necessary.
+apt (see agi above); invoked by sudo, if necessary.
-: **au** (//apt-get update//)
+: **au** (//apt update//)
Resynchronizes the package index files from their sources. The indexes of
available packages are fetched from the location(s) specified in
/etc/apt/sources.list. An update should always be performed before an