From 05daedf7c6b8ad7cc84d0be644e9a2cb8a140128 Mon Sep 17 00:00:00 2001 From: Derek Harland Date: Thu, 9 Jul 2015 14:54:49 +1200 Subject: [PATCH] Improve dirs output and add -c option Adds behaviour similar to bash: - shorten dirs output by representing $HOME as ~; - provide a '-c' option to clear the stack --- share/functions/dirs.fish | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/share/functions/dirs.fish b/share/functions/dirs.fish index 64660e345..207f66328 100644 --- a/share/functions/dirs.fish +++ b/share/functions/dirs.fish @@ -1,9 +1,18 @@ -function dirs --description "Print directory stack" - echo -n (command pwd)" " - for i in $dirstack - echo -n $i" " - end - echo +function dirs --description 'Print directory stack' + # process options + if count $argv >/dev/null + switch $argv[1] + case -c + # clear directory stack + set -e -g dirstack + return 0 + end + end + + # replace $HOME with ~ + echo -n (echo (command pwd) | sed -e "s|^$HOME|~|")" " + for i in $dirstack + echo -n (echo $i | sed -e "s|^$HOME|~|")" " + end + echo end - -