aboutsummaryrefslogtreecommitdiff
path: root/dot_config/fish/functions/zi.fish
diff options
context:
space:
mode:
Diffstat (limited to 'dot_config/fish/functions/zi.fish')
-rw-r--r--dot_config/fish/functions/zi.fish17
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