X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=doc%2Fgrmlzshrc.t2t;h=ead2182ba480f6b31aa1771066b6fe408ae82bfc;hb=21c8c5cf7e67b38bf42cdc19af6629fd6346d8f0;hp=13d83dcdbd6ada6a3a34cdd74a4dca982bb04b39;hpb=5a529cfb9c0bfa2a2c7096aa3e5af8483d55bf36;p=grml-etc-core.git diff --git a/doc/grmlzshrc.t2t b/doc/grmlzshrc.t2t index 13d83dc..ead2182 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 @@ -544,9 +589,6 @@ Lists files in current directory, which have been accessed within the last N days. N is an integer to be passed as first and only argument. If no argument is specified N is set to 1. -: **allulimit()** -Sets all ulimit values to "unlimited". - : **any()** Lists processes matching given pattern. @@ -975,11 +1017,11 @@ Executes the commands on the versioned patch queue from current repository. : **rmcdir** (//'cd ..; rmdir $OLDPWD || cd $OLDPWD//) rmdir current working directory -: **screen** (///usr/bin/screen -c ${HOME}/.screenrc//) +: **screen** (//screen -c file//) 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. +as config file. If invoked by a regular user and users .screenc does not exist, +starts screen with /etc/grml/screenrc_grml config if it exists, else fallbacks +to /etc/grml/screenrc. : **su** (//sudo su//) If user is running a Grml live system, don't ask for any password, if she