mirror of
https://github.com/fredrikr79/nixos.git
synced 2025-12-24 10:00:21 +01:00
alias nnn to n with autocd on exit
This commit is contained in:
35
home.nix
35
home.nix
@@ -1054,7 +1054,7 @@ in
|
||||
suspend = "systemctl suspend";
|
||||
logout = "sudo pkill -u fredrikr";
|
||||
lock = "/home/fredrikr/.logout.sh";
|
||||
n = "nvim";
|
||||
nv = "nvim";
|
||||
e = "emacsclient -c -a 'emacs'";
|
||||
nnn = "nnn -e";
|
||||
jl = "jj l";
|
||||
@@ -1130,6 +1130,39 @@ in
|
||||
# compinit
|
||||
source <(jj util completion zsh)
|
||||
source <(COMPLETE=zsh jj)
|
||||
|
||||
# --------- autocd on nnn quit ----------
|
||||
n ()
|
||||
{
|
||||
# Block nesting of nnn in subshells
|
||||
[ "''${NNNLVL:-0}" -eq 0 ] || {
|
||||
echo "nnn is already running"
|
||||
return
|
||||
}
|
||||
|
||||
# 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. To cd on quit only on ^G, remove the "export" and make sure not to
|
||||
# use a custom path, i.e. set NNN_TMPFILE *exactly* as follows:
|
||||
# NNN_TMPFILE="''${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd"
|
||||
NNN_TMPFILE="''${XDG_CONFIG_HOME:-$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
|
||||
|
||||
# The command builtin allows one to alias nnn to n, if desired, without
|
||||
# making an infinitely recursive alias
|
||||
command nnn -e "$@"
|
||||
|
||||
[ ! -f "$NNN_TMPFILE" ] || {
|
||||
. "$NNN_TMPFILE"
|
||||
rm -f -- "$NNN_TMPFILE" > /dev/null
|
||||
}
|
||||
}
|
||||
# ---------------------------------------
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user