diff options
Diffstat (limited to 'plugins/shrink-path/README.md')
-rw-r--r-- | plugins/shrink-path/README.md | 87 |
1 files changed, 61 insertions, 26 deletions
diff --git a/plugins/shrink-path/README.md b/plugins/shrink-path/README.md index 33dc3f8ae..71a242b2c 100644 --- a/plugins/shrink-path/README.md +++ b/plugins/shrink-path/README.md @@ -1,43 +1,50 @@ -# A plugin to shrink directory paths for brevity and pretty-printing +# shrink-path +A plugin to shrink directory paths for brevity and pretty-printing. + +To use it, add `shrink-path` to the plugins array in your zshrc file: + +```zsh +plugins=(... shrink-path) +``` ## Examples For this directory tree: ``` - /home/ - me/ - f o o/ # The prefix f is ambiguous between "f o o" and "f i g". - bar/ - quux/ - biz/ # The prefix b is ambiguous between bar and biz. - f i g/ - baz/ +/home/ + me/ + f o o/ # The prefix f is ambiguous between "f o o" and "f i g". + bar/ + quux/ + biz/ # The prefix b is ambiguous between bar and biz. + f i g/ + baz/ ``` here are the results of calling `shrink_path <option> /home/me/foo/bar/quux`: ``` - Option Result - <none> /h/m/f o/ba/q - -l|--last /h/m/f o/ba/q - -s|--short /h/m/f/b/q - -t|--tilde ~/f o/ba/q - -f|--fish ~/f/b/quux - -g|--glob /h*/m*/f o*/ba*/q* - -3 /hom/me/f o/bar/quu - -e '$' -3 /hom$/me/f o$/bar/quu$ - -q /h/m/f\ o/ba/q - -g -q /h*/m*/f\ o*/ba*/q* +Option Result +<none> /h/m/f o/ba/q +-l|--last /h/m/f o/ba/q +-s|--short /h/m/f/b/q +-t|--tilde ~/f o/ba/q +-f|--fish ~/f/b/quux +-g|--glob /h*/m*/f o*/ba*/q* +-3 /hom/me/f o/bar/quu +-e '$' -3 /hom$/me/f o$/bar/quu$ +-q /h/m/f\ o/ba/q +-g -q /h*/m*/f\ o*/ba*/q* +-x /home/me/foo/bar/quux ``` - ## Usage For a fish-style working directory in your command prompt, add the following to your theme or zshrc: -``` - setopt prompt_subst - PS1='%n@%m $(shrink_path -f)>' +```zsh +setopt prompt_subst +PS1='%n@%m $(shrink_path -f)>' ``` The following options are available: @@ -54,17 +61,45 @@ The following options are available: ellipsis character(s) (defaulting to 1). -e SYMBOL Postfix symbol(s) to indicate that a directory name had been truncated. -q, --quote Quote special characters in the shrunk path + -x, --expand Print the full path. This takes precedence over the other options ``` The long options can also be set via zstyle, like -``` - zstyle :prompt:shrink_path fish yes +```zsh +zstyle :prompt:shrink_path fish yes ``` Note: Directory names containing two or more consecutive spaces are not yet supported. +## Trick: toggle shrinking with a keyboard shortcut + +You can use the `expand` option to disable the path shrinking. You can combine that +with a key binding widget to toggle path shrinking on and off. + +```zsh +# Toggle off path shrinking +zstyle ':prompt:shrink_path' expand true +# Toggle on path shrinking +zstyle -d ':prompt:shrink_path' expand +``` + +Combined with a widget: + +```zsh +# Widget definition +shrink-path-toggle() { + zstyle -t ':prompt:shrink_path' expand \ + && zstyle -d ':prompt:shrink_path' expand \ + || zstyle ':prompt:shrink_path' expand true + zle reset-prompt +} +zle -N shrink-path-toggle +# Key binding to ALT+SHIFT+S +bindkey "^[S" shrink-path-toggle +``` + ## License Copyright (C) 2008 by Daniel Friesel <derf@xxxxxxxxxxxxxxxxxx> |