A little late but here is my approach:
Maintained a separate copy of the function's original logic, referred to as ~/.config/fish/functions/__fish_move_last_copy.fish
(the basepath is a conventional place for custom fish functions, also specified inside $FISH_FUNCTION_PATH
).
Also in ~/.config/fish/functions
, write your new __fish_move_last.fish
, import __fish_move_last_copy.fish
inside it then passed all of __fish_move_last.fish
's arguments to __fish_move_last_copy.fish
.
Add a cronjob (or systemd timer, whatever suits you) to copy /usr/share/fish/functions/__fish_move_last.fish
to ~/.config/fish/functions/__fish_move_last_copy.fish
every start of the week (too frequent? month is also good as well).
This is how I managed to overwrite many of Fish's default function without the fear of original function gets update later