aboutsummaryrefslogtreecommitdiff
path: root/files/.zsh/rc/S50_nnn
blob: 05eaf3b39609b472bb034399750699737756d27f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
nnn_plugins() {
  local plugins=()
  plugins=()
  plugins+=(o:fzopen)
  plugins+=(z:autojump)
  plugins+=(p:preview-tui)
  plugins+=('T:-!&xdg-open "$PWD"')  # Open current dir
  echo ${(j:;:)plugins}
}

NNN_PLUG=$(nnn_plugins)

unfunction nnn_plugins

NNN_ARCHIVE="\\.(7z|a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|rar|rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)$"
NNN_FCOLORS="03040601000205f7d204d9f7"

if command -v trash >/dev/null ; then
    NNN_TRASH=1
fi

NNN_OPTS="${NNN_OPTS}a"                 # auto NNN_FIFO
NNN_OPTS="${NNN_OPTS}A"                 # no dir auto-enter during filter
NNN_OPTS="${NNN_OPTS}e"                 # text in $VISUAL/$EDITOR/vi
NNN_OPTS="${NNN_OPTS}x"                 # notis, selection sync, xterm title
NNN_OPTS="${NNN_OPTS}R"                 # no rollover at edges
if command -v cpg mvg >/dev/null ; then
  NNN_OPTS="${NNN_OPTS}r"               # use advcpmv patched cp, mv
fi


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"
    export 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

    export LESS="${LESS//[FX]}"

    # The command builtin allows one to alias nnn to n, if desired, without
    # making an infinitely recursive alias
    command nnn "$@"

    [ ! -f "$NNN_TMPFILE" ] || {
        . "$NNN_TMPFILE"
        rm -f "$NNN_TMPFILE" > /dev/null
    }
}

nsel() {
  local selection
  selection="${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection"
  if [ -f "$selection" ] ; then
    tr '\0' '\n' < "$selection"
  fi
}

export NNN_PLUG NNN_ARCHIVE NNN_FCOLORS NNN_OPTS NNN_TRASH

# vim: ft=zsh :