diff --git a/misc/quitcd/quitcd.nu b/misc/quitcd/quitcd.nu new file mode 100644 index 00000000..f291e5a7 --- /dev/null +++ b/misc/quitcd/quitcd.nu @@ -0,0 +1,18 @@ +# The behaviour is set to cd on quit (nnn checks if NNN_TMPFILE is set) +let cfgHome = ($env | default $env.HOME XDG_CONFIG_HOME | get XDG_CONFIG_HOME) +let-env NNN_TMPFILE = $"($cfgHome)/.config/nnn/.lastd" + +def-env n [...x] { + # Launch nnn. Add desired flags after `^nnn`, ex: `^nnn -eda ($x | str join)` + ^nnn ($x | str join) + let newpath = ( + if ($env.NNN_TMPFILE | path exists) { + let newpath = (open $env.NNN_TMPFILE | parse 'cd "{nnnpath}"').0.nnnpath + ^rm -f $env.NNN_TMPFILE + echo $newpath + } else { + pwd + } + ) + cd $newpath +}