grmlzshrc.t2t: Document persistent dirstack
[grml-etc-core.git] / doc / grmlzshrc.t2t
1 GRMLZSHRC
2
3 May, 2009
4
5 %!target: man
6 %!postproc(man): "^(\.TH.*) 1 "  "\1 5 "
7
8
9 = NAME =
10 grmlzshrc - grml's zsh setup
11
12
13 = SYNOPSIS =
14 //zsh// [**options**]...
15
16
17 = DESCRIPTION =
18 The grml project provides a fairly exhaustive interactive setup (referred to
19 as //grmlzshrc// throughout this document) for the amazing unix shell zsh
20 (http://zsh.sourceforge.net). This is the reference manual for that
21 setup (which is currently vastly incomplete; patches welcome).
22
23 To use //grmlzshrc//, you need at least version 3.1.7 of zsh (although not all
24 features are enabled in every version).
25
26 //grmlzshrc// behaves differently depending on which user loads it. For the
27 root user (**EUID** == 0) only a subset of features is loaded by default. This
28 behaviour can be altered by setting the **GRML_ALWAYS_LOAD_ALL** STARTUP
29 VARIABLE (see below).
30
31 = STARTUP VARIABLES =
32 Some of the behaviour of //grmlzshrc// can be altered by setting certain shell
33 variables. These may be set temporarily when starting zsh like this:
34 \
35 ``` % BATTERY=1 zsh
36
37 Or by setting them permanently in **zshrc.pre** (See AUXILIARY FILES below).
38
39 : **BATTERY**
40 If set to a value greater than zero and //acpi// installed, //grmlzshrc// will
41 put the battery status into the right hand side interactive prompt.
42
43
44 = FEATURE DESCRIPTION =
45 This is an in depth description of non-standard features implemented by
46 //grmlzshrc//.
47
48 == DIRSTACK HANDLING ==
49 The dirstack in //grmlzshrc// has a persistent nature. It is stored into a
50 file each time zsh's working directory is changed. That file can be configured
51 via the **DIRSTACKFILE** variable and it defaults to **~/.zdirs**. The
52 **DIRSTACKSIZE** variable defaults to **20** in this setup.
53
54 The **DIRSTACKFILE** is loaded each time zsh starts, therefore freshly started
55 zshs inherit the dirstack of the zsh that most recently updated
56 **DIRSTACKFILE**.
57
58 == DIRECTORY BASED PROFILES ==
59
60 == ACCEPTLINE WRAPPER ==
61
62 == PROMPT ==
63
64 == GNU/SCREEN STATUS SETTING ==
65
66 == PERSISTENT HISTORY ==
67
68
69 = REFERENCE =
70 == KEYBINDINGS ==
71
72 == SHELL FUNCTIONS ==
73 //grmlzshrc// comes with a wide array of defined shell functions to ease the
74 user's life.
75
76 : urlencode()
77 Takes a string as its first argument and prints it RFC 2396 URL encoded to
78 standard out.
79
80
81 = AUXILIARY FILES =
82 This is a set of files, that - if they exist - can be used to customize the
83 behaviour of //grmlzshrc//.
84
85 : .zshrc.pre
86 Sourced at the very beginning of //grmlzshrc//. Among other things, it can
87 be used to permantenly change //grmlzshrc//'s STARTUP VARIABLES (see above):
88 \
89 ```
90 # show battery status in RPROMPT
91 BATTERY=1
92 # always load the complete setup, even for root
93 GRML_ALWAYS_LOAD_ALL=1
94 ```
95
96 : .zshrc.local
97 Sourced right before loading //grmlzshrc// is finished. There is a global
98 version of this file (/etc/zsh/zshrc.local) which is sourced before the
99 user-specific one.
100
101
102 = INSTALLATION ON NON-DEBIAN SYSTEMS =
103
104
105 = CONTRIBUTING =
106 If you want to help to improve grml's zsh setup, clone the grml-etc-core
107 repository from git.grml.org:
108 \
109 ``` % git clone git://git.grml.org/grml-etc-core.git
110
111 Make your changes, commit them; use '**git format-patch**' to create a series
112 of patches and send those to the following address via '**git send-email**':
113 \
114 ``` grml-etc-core@grml.org
115
116 Doing so makes sure the right people get your patches for review and
117 possibly inclusion.
118
119
120 = AUTHOR =
121 This manpage was written by Frank Terbeck <ft@grml.org>.
122
123
124 = COPYRIGHT =
125 Copyright (c) 2009, grml project <http://grml.org>
126
127 This manpage is distributed under the terms of the GPL version 2.
128
129 Most parts of grml's zshrc are distributed under the terms of GPL v2, too,
130 except for **accept-line()** and **vcs_info()**, which are distributed under
131 the same conditions as zsh itself (which is BSD-like).