summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Hilburn <bhilburn@gmail.com>2016-01-06 00:07:01 +0300
committerBen Hilburn <bhilburn@gmail.com>2016-01-06 00:07:01 +0300
commit2945c9344485193540dde46db81cd7d5064a2b9f (patch)
treeeda2ae568fce5268116bfaaa4a0b2298fbc76d6f
parent4437e539e9541251746b0917bfd0aea1ffa3493a (diff)
parente7e11d5ec87f30323d065100c1e8fdb4a98c3aba (diff)
Merge pull request #174 from niklas-heer/shorten-fish_like
added fish-like shortening strategy
-rw-r--r--README.md13
-rwxr-xr-xpowerlevel9k.zsh-theme8
2 files changed, 18 insertions, 3 deletions
diff --git a/README.md b/README.md
index c611c5d9..a6b69bff 100644
--- a/README.md
+++ b/README.md
@@ -205,6 +205,19 @@ To change the way how the current working directory is truncated, just set:
POWERLEVEL9K_SHORTEN_STRATEGY="truncate_from_right"
# default behaviour is to truncate whole directories
+You can also change the delimiter (the dots in between) which is used to truncate the working directory. This setting is optional. The default are 2 dots.
+
+ # set the delimiter to an empty string to hide it
+ POWERLEVEL9K_SHORTEN_DELIMITER=""
+ # or set it to anything else you want (e.g. 3 dots)
+ POWERLEVEL9K_SHORTEN_DELIMITER="..."
+
+With this you could achive the truncate behaviour of the fish shell. Which turncates `/usr/share/plasma` to `/u/s/plasma`
+
+ POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
+ POWERLEVEL9K_SHORTEN_DELIMITER=""
+ POWERLEVEL9K_SHORTEN_STRATEGY="truncate_from_right"
+
In each case you have to specify the length you want to shorten the directory
to. So in some cases `POWERLEVEL9K_SHORTEN_DIR_LENGTH` means characters, in
others whole directories.
diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme
index 19c5ea98..706c198a 100755
--- a/powerlevel9k.zsh-theme
+++ b/powerlevel9k.zsh-theme
@@ -407,15 +407,17 @@ prompt_dir() {
local current_path='%~'
if [[ -n "$POWERLEVEL9K_SHORTEN_DIR_LENGTH" ]]; then
+ set_default POWERLEVEL9K_SHORTEN_DELIMITER ".."
+
case "$POWERLEVEL9K_SHORTEN_STRATEGY" in
truncate_middle)
- current_path=$(pwd | sed -e "s,^$HOME,~," | sed $SED_EXTENDED_REGEX_PARAMETER "s/([^/]{$POWERLEVEL9K_SHORTEN_DIR_LENGTH})[^/]+([^/]{$POWERLEVEL9K_SHORTEN_DIR_LENGTH})\//\1\.\.\2\//g")
+ current_path=$(pwd | sed -e "s,^$HOME,~," | sed $SED_EXTENDED_REGEX_PARAMETER "s/([^/]{$POWERLEVEL9K_SHORTEN_DIR_LENGTH})[^/]+([^/]{$POWERLEVEL9K_SHORTEN_DIR_LENGTH})\//\1$POWERLEVEL9K_SHORTEN_DELIMITER\2\//g")
;;
truncate_from_right)
- current_path=$(pwd | sed -e "s,^$HOME,~," | sed $SED_EXTENDED_REGEX_PARAMETER "s/([^/]{$POWERLEVEL9K_SHORTEN_DIR_LENGTH})[^/]+\//\1..\//g")
+ current_path=$(pwd | sed -e "s,^$HOME,~," | sed $SED_EXTENDED_REGEX_PARAMETER "s/([^/]{$POWERLEVEL9K_SHORTEN_DIR_LENGTH})[^/]+\//\1$POWERLEVEL9K_SHORTEN_DELIMITER\//g")
;;
*)
- current_path="%$((POWERLEVEL9K_SHORTEN_DIR_LENGTH+1))(c:.../:)%${POWERLEVEL9K_SHORTEN_DIR_LENGTH}c"
+ current_path="%$((POWERLEVEL9K_SHORTEN_DIR_LENGTH+1))(c:$POWERLEVEL9K_SHORTEN_DELIMITER/:)%${POWERLEVEL9K_SHORTEN_DIR_LENGTH}c"
;;
esac