var dir-stack = [$pwd] fn on-chdir {|_dir| var last = $dir-stack[0] if (not-eq $pwd $last) { set dir-stack = [ $pwd $@dir-stack ] } } edit:add-var popd~ {|| if (> (count $dir-stack) 1) { set dir-stack = $dir-stack[1..] var last = $dir-stack[0] cd $last } else { edit:notify "Reached bottom of directory stack" } } set after-chdir = [$on-chdir~ $@after-chdir]