diff --git a/templates/nushell.txt b/templates/nushell.txt index 90d5cba..a131efe 100644 --- a/templates/nushell.txt +++ b/templates/nushell.txt @@ -39,13 +39,14 @@ if (not ($env | default false __zoxide_hooked | get __zoxide_hooked)) { # # Jump to a directory using only keywords. -def --env --wrapped __zoxide_z [...rest:string] { - let arg0 = ($rest | append '~').0 - let arg0_is_dir = (try {$arg0 | path expand | path type}) == 'dir' - let path = if (($rest | length) <= 1) and ($arg0 == '-' or $arg0_is_dir) { - $arg0 - } else { - (zoxide query --exclude $env.PWD -- ...$rest | str trim -r -c "\n") +def --env --wrapped __zoxide_z [...rest: string] { + let path = match $rest { + [] => {'~'}, + [ '-' ] => {'-'}, + [ $arg ] if ($arg | path type) == 'dir' => {$arg} + _ => { + zoxide query --exclude $env.PWD -- ...$rest | str trim -r -c "\n" + } } cd $path {%- if echo %}