diff options
Diffstat (limited to 'dot_config/fish/functions/zi.fish')
| -rw-r--r-- | dot_config/fish/functions/zi.fish | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/dot_config/fish/functions/zi.fish b/dot_config/fish/functions/zi.fish new file mode 100644 index 0000000..c529662 --- /dev/null +++ b/dot_config/fish/functions/zi.fish @@ -0,0 +1,17 @@ +if ! builtin functions --query __zoxide_cd_internal + string replace --regex -- '^function cd\s' 'function __zoxide_cd_internal ' <$__fish_data_dir/functions/cd.fish | source +end +function __zoxide_cd + if set -q __zoxide_loop + builtin echo "zoxide: infinite loop detected" + builtin echo "Avoid aliasing `cd` to `z` directly, use `zoxide init --cmd=cd fish` instead" + return 1 + end + __zoxide_loop=1 __zoxide_cd_internal $argv +end + +# Jump to a directory using interactive search. +function zi + set -l result (command zoxide query --interactive -- $argv) + and __zoxide_cd $result +end |