From 0812c7afac099fabfbc716731f5862b9aac9184a Mon Sep 17 00:00:00 2001 From: SlIdE42 <17254419+SlIdE42@users.noreply.github.com> Date: Sun, 17 Apr 2022 13:29:51 +0200 Subject: [PATCH] quitcd script for Elvish shell > 0.17.0 --- misc/quitcd/quitcd.elv | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 misc/quitcd/quitcd.elv diff --git a/misc/quitcd/quitcd.elv b/misc/quitcd/quitcd.elv new file mode 100644 index 00000000..b6514cdd --- /dev/null +++ b/misc/quitcd/quitcd.elv @@ -0,0 +1,39 @@ +# Append this file to ~/.elvish/rc.elv (Elvish > 0.17.0) + +use path + +fn n {|@a| + # Block nesting of nnn in subshells + if (has-env NNNLVL) { + try { + if (>= $E:NNNLVL 1) { + echo "nnn is already running" + return + } + } catch e { + nop + } + } + + # The behaviour is set to cd on quit (nnn checks if NNN_TMPFILE is set) + # If NNN_TMPFILE is set to a custom path, it must be exported for nnn to + # see. + if (has-env XDG_CONFIG_HOME) { + set-env NNN_TMPFILE $E:XDG_CONFIG_HOME/nnn/.lastd + } else { + set-env NNN_TMPFILE $E:HOME/.config/nnn/.lastd + } + + # Unmask ^Q (, ^V etc.) (if required, see `stty -a`) to Quit nnn + # stty start undef + # stty stop undef + # stty lwrap undef + # stty lnext undef + + e:nnn $@a + + if (path:is-regular $E:NNN_TMPFILE) { + eval (slurp < $E:NNN_TMPFILE) + rm $E:NNN_TMPFILE + } +}