mirror of
https://github.com/jarun/nnn.git
synced 2025-01-15 13:26:37 +00:00
quitcd script for Elvish shell > 0.17.0
This commit is contained in:
parent
be4460c1da
commit
0812c7afac
39
misc/quitcd/quitcd.elv
Normal file
39
misc/quitcd/quitcd.elv
Normal file
|
@ -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
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue