diff options
Diffstat (limited to 'init/functions/__fish_move_last.fish')
-rw-r--r-- | init/functions/__fish_move_last.fish | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/init/functions/__fish_move_last.fish b/init/functions/__fish_move_last.fish new file mode 100644 index 00000000..965072cd --- /dev/null +++ b/init/functions/__fish_move_last.fish @@ -0,0 +1,27 @@ +function __fish_move_last -d "Move the last element of a directory history from src to dest" + set -l src $argv[1] + set -l dest $argv[2] + + set -l size_src (count $$src) + + if test $size_src = 0 + # Cannot make this step + printf (_ "Hit end of history...\n") + return 1 + end + + # Append current dir to the end of the destination + set -g (echo $dest) $$dest (command pwd) + + set ssrc $$src + + # Change dir to the last entry in the source dir-hist + builtin cd $ssrc[$size_src] + + # Keep all but the last from the source dir-hist + set -e (echo $src)[$size_src] + + # All ok, return success + return 0 +end + |