X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=doc%2Fgrmlzshrc.t2t;h=a5d3ef2e8bf179d8f9a397da9379367239d52073;hb=76fb54b0a068f79a6afa90e2b2add8df3611e505;hp=62d412bfabb2013d13f87280c096775929dc1d08;hpb=c0280d16a9f44830885b456241e41ff308ecfec8;p=grml-etc-core.git diff --git a/doc/grmlzshrc.t2t b/doc/grmlzshrc.t2t index 62d412b..a5d3ef2 100644 --- a/doc/grmlzshrc.t2t +++ b/doc/grmlzshrc.t2t @@ -127,6 +127,51 @@ The **DIRSTACKFILE** is loaded each time zsh starts, therefore freshly started zshs inherit the dirstack of the zsh that most recently updated **DIRSTACKFILE**. +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 +setup via styles in the **':grml:chpwd:dirstack'** context. + +To use a function based filter set the //filter// style for that context to the +name of a function to call every time a directory name is to be added to the +persistent dirstack. If the function's return value signals success (ie. return +value "0"), the directory name is filtered out and **not** added to the +persistent stack. Example: +\ +``` +function my_dirstack_filter() { [[ $1 == /tmp(|/*) ]] } +zstyle ':grml:chpwd:dirstack' filter my_dirstack_filter +``` + +The pattern based filter uses a list of patterns passed to the //exclude// +style in the aforementioned context. Each pattern is tested and the first that +matches will keep the directory name from being added to the persistent stack. +If none of the patterns matches, the name is added. example: +\ +``` +zstyle ':grml:chpwd:dirstack' exclude "/tmp(|/*)" "$HOME/tmp(|/*)" +``` + +The function based filter is more general, the pattern based filter easier to +set up. If both filter variants are used at the same time, the function based +filter will be executed //before// the pattern based one. + +If you would like to apply your filters while //loading// the persistent +dirstack file, set the //filter-on-load// boolean style (the default is +//false//): +\ +``` +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. + + == DIRECTORY BASED PROFILES == If you need to perform certain actions each time you enter certain @@ -402,10 +447,6 @@ already set otherwise. : **PAGER** Set less(1) as default pager, if not already set to something different. -: **SHELL** -Set explicitly to /bin/zsh, to prevent certain terminal emulators to -default to /bin/sh or /bin/bash. - == OPTIONS == Apart from zsh's default options, //grmlzshrc// sets some options @@ -706,7 +747,7 @@ Example usages: ``` : **profile()** -Runs a command in $SHELL with profiling enabled (See startup variable +Runs a command in zsh with profiling enabled (See startup variable ZSH_PROFILE_RC above). : **salias()** @@ -901,7 +942,7 @@ Runs the function H-Glob() to expand or explain wildcards. : **j** (//jobs -l//) Prints status of jobs in the current shell session in long format. -: **l** (//ls -lF --color=auto//) +: **l** (//ls -l --color=auto//) Lists files in long output format with indicator for filetype appended to filename. If the terminal supports it, with colored output. @@ -923,7 +964,7 @@ Lists files in long colored output format. : **llog** (//$PAGER /var/log/syslog//) Opens syslog in pager. -: **ls** (//ls -CF --color=auto//) +: **ls** (//ls -C --color=auto//) Lists directory, 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.