grmlzshrc.t2t: Add documentation about zsh-refcard tags
[grml-etc-core.git] / doc / grmlzshrc.t2t
index 778974b..02d646b 100644 (file)
@@ -243,27 +243,145 @@ user's life.
 Converts plaintext files to HTML using vim. The output is written to
 <filename>.html.
 
+: **audioburn()**
+Burns the files in ~/ripps (see audiorip() below) to an audio CD.
+Then prompts the user if she wants to remove that directory. You might need
+to tell audioburn which cdrom device to use like:
+"DEVICE=/dev/cdrom audioburn"
+
+: **audiorip()**
+Creates directory ~/ripps, if it does not exist. Then rips audio CD into
+it. Then prompts the user if she wants to burn a audio CD with audioburn()
+(see above). You might need to tell audiorip which cdrom device to use like:
+"DEVICE=/dev/cdrom audioburn"
+
+: **cl()**
+Changes current directory to the one supplied by argument and lists the files
+in it, including file names starting with ".".
+
 : **doc()**
 Takes packagename as argument. Sets current working directory to
 /usr/share/doc/<packagename> and prints out a directory listing.
 
+: **fluxkey-change()**
+Switches the key combinations for changing current workspace under fluxbox(1)
+from Alt-[0-9] to Alt-F[0-9] and vice versa by rewriting $HOME/.fluxbox/keys.
+Requires the window manager to reread configuration to take effect.
+
+: **genthumbs()**
+A simple thumbnails generator. Resizes images (i. e. files that end in ".jpg",
+".jpeg", ".gif" or ".png") to 100x200. Output files are named "thumb-<original
+filename>". Creates an index.html with title "Images" showing the
+thumbnails as clickable links to the respective original file.
+//Warning:// On start genthumbs() silently removes a possibly existing "index.html"
+and all files and/or directories beginning with "thumb-" in current directory!
+
+: **greph()**
+Searches the zsh command history for a regular expression.
+
 : **hex()**
 Prints the hexadecimal representation of the number supplied as argument
 (base ten only).
 
+: **is4()**
+Returns true, if zsh version is equal or greater than 4, else false.
+
+: **is41()**
+Returns true, if zsh version is equal or greater than 4.1, else false.
+
+: **is42()**
+Returns true, if zsh version is equal or greater than 4.2, else false.
+
+: **is425()**
+Returns true, if zsh version is equal or greater than 4.2.5, else false.
+
+: **is43()**
+Returns true, if zsh version is equal or greater than 4.3, else false.
+
+: **is433()**
+Returns true, if zsh version is equal or greater than 4.3.3, else false.
+
+: **isdarwin()**
+Returns true, if running on darwin, else false.
+
+: **isgrml()**
+Returns true, if running on a grml system, else false.
+
+: **isgrmlcd()**
+Returns true, if running on a grml system from a live cd, else false.
+
+: **isgrmlsmall()**
+Returns true, if run on grml-small, else false.
+
+: **isutfenv()**
+Returns true, if run within an utf environment, else false.
+
+: **lcheck()**
+Lists libraries that define the symbol containing the string given as
+parameter.
+
+: **limg()**
+Lists images (i. e. files ending with ".jpg", ".gif" or ".png") in current
+directory.
+
+: **mcd()**
+Creates directory including parent directories, if necessary. Then changes
+current working directory to it.
+
+: **mkiso()**
+Creates an iso9660 filesystem image with Rockridge and Joliet extensions
+enabled using mkisofs(8). Prompts the user for volume name, filename and
+target directory.
+
+: **purge()**
+Removes typical temporary files (i. e. files like "*~", ".*~", "#*#", "*.o",
+"a.out", "*.core", "*.cmo", "*.cmi" and ".*.swp") from current directory.
+Asks for confirmation.
+
 : **readme()**
 Opens all README-like files in current working directory with the program
 defined in the $PAGER environment variable.
 
+: **regcheck()**
+Checks whether a regular expression (first parameter) matches a string
+(second parameter) using perl.
+
+: **shtar()**
+Lists the content of a gzipped tar archive in default pager.
+
+: **shzip()**
+Shows the content of a zip archive in default pager.
+
+: **slow_print()**
+Prints the arguments slowly by sleeping 0.08 seconds between each character.
+
+: **sshot()**
+Creates directory named shots in user's home directory, if it does not yet
+exist and changes current working directory to it. Then sleeps 5 seconds,
+so you have plenty of time to switch desktops/windows. Then makes a screenshot
+of the current desktop. The result is stored in ~/shots to a timestamped
+jpg file.
+
 : **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.
+
+: **udiff()**
+Makes a unified diff of the command line arguments trying hard to find a
+smaller set of changes. Descends recursively into subdirectories. Ignores
+hows some information about current status.
+
 : **urlencode()**
 Takes a string as its first argument and prints it RFC 2396 URL encoded to
 standard out.
 
+: **viless()**
+Vim as pager.
+
 : **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
@@ -272,7 +390,10 @@ issues a Warning to use the grml-x(1) script. Can be overridden by using
 
 == ALIASES ==
 //grmlzshrc// comes with a wide array of predefined aliases to ease the user's
-life.
+life. A few aliases (like those involving //grep// or //ls//) use the option
+//--color=auto// for colourizing output. That option is part of **GNU**
+implementations of these tools, and will only be used if such an implementation
+is detected.
 
 : **cmplayer** (//mplayer -vo fbdev//)
 Video player with framebuffer as video output device, so you can watch
@@ -294,16 +415,75 @@ can watch videos on a virtual tty.
 : **g** (//git//)
 Revision control system by Linus Torvalds.
 
+: **grep** (//grep --color=auto//)
+Shows grep output in nice colors, if available.
+
+: **GREP** (//grep -i --color=auto//)
+Case insensitive grep with colored output.
+
 : **http** (//python -m SimpleHTTPServer//)
 Basic HTTP server implemented in python. Listens on port 8000/tcp and
 serves current directory. Implements GET and HEAD methods.
 
+: **l** (//ls -lF --color=auto//)
+Lists files in long output format with indicator for filetype appended
+to filename. If the terminal supports it, with colored output.
+
+: **la** (//ls -la --color=auto//)
+Lists files in long colored output format. Including file names
+starting with ".".
+
+: **lh** (//ls -hAl --color=auto//)
+Lists files in long and human readable output format in nice colors,
+if available. Includes file names starting with "." except "." and
+"..".
+
+: **ll** (//ls -l --color=auto//)
+Lists files in long colored output format.
+
 : **j** (//jobs -l//)
 Prints status of jobs in the current shell session in long format.
 
+: **ls** (//ls -b -CF --color=auto//)
+Lists directory printing octal escapes for nongraphic characters.
+Entries are listed by columns and an indicator for file type is appended
+to each file name. Additionally the output is colored, if the terminal
+supports it.
+
+: **lsbig** (//ls -flh *(.OL[1,10])//)
+Displays the ten biggest files (long and human readable output format).
+
+: **lsd** (//ls -d *(/)//)
+Shows directories.
+
+: **lse** (//ls -d *(/^F)//)
+Shows empty directories.
+
+: **lsnew** (//ls -rl *(D.om[1,10])//)
+Displays the ten newest files (long output format).
+
+: **lsold** (//ls -rtlh *(D.om[1,10])//)
+Displays the ten oldest files (long output format).
+
+: **lssmall** (//ls -Srl *(.oL[1,10])//)
+Displays the ten smallest files (long output format).
+
+: **lsw** (//ls -ld *(R,W,X.^ND/)//)
+Displays all files which are world readable and/or world writable and/or
+world executable (long output format).
+
+: **lsx** (//ls -l *(*)//)
+Lists only executable files.
+
 : **md** (//mkdir -p//)
 Creates directory including parent directories, if necessary
 
+: **screen** (///usr/bin/screen -c ${HOME}/.screenrc//)
+If invoking user is root, starts screen session with /etc/grml/screenrc
+as config file. If invoked by a regular user, start a screen session
+with users .screenrc config if it exists, else use /etc/grml/screenrc_grml
+as configuration.
+
 : **rw-** (//chmod 600//)
 Grants read and write permission of a file to the owner and nobody else.
 
@@ -363,6 +543,111 @@ your **$fpath**), you can browse and download them at:
 
 http://git.grml.org/?p=grml-etc-core.git;a=tree;f=usr_share_grml/zsh;hb=HEAD
 
+= ZSH REFCARD TAGS =
+If you read //grmlzshrc//'s code you may notice strange looking comments in
+it. These are there for a purpose. grml's zsh-refcard is automatically
+generated from the contents of the actual configuration file. 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# <section> <argument> <comment>
+
+: **#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:
+
+#<tag><section># <comment>
+
+Where <section> 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@@.
+
 
 = CONTRIBUTING =
 If you want to help to improve grml's zsh setup, clone the grml-etc-core