diff options
Diffstat (limited to '.config/fish/functions')
-rw-r--r-- | .config/fish/functions/init_fzf.fish | 11 | ||||
-rw-r--r-- | .config/fish/functions/is_mac.fish | 4 | ||||
-rw-r--r-- | .config/fish/functions/n.fish | 36 |
3 files changed, 51 insertions, 0 deletions
diff --git a/.config/fish/functions/init_fzf.fish b/.config/fish/functions/init_fzf.fish new file mode 100644 index 0000000..b1fab2a --- /dev/null +++ b/.config/fish/functions/init_fzf.fish @@ -0,0 +1,11 @@ +function init_fzf + command -v fzf > /dev/null || exit 0 + + if is_mac; + source $(brew --prefix fzf)/shell/key-bindings.fish + end + + function fish_user_key_bindings + fzf_key_bindings + end +end diff --git a/.config/fish/functions/is_mac.fish b/.config/fish/functions/is_mac.fish new file mode 100644 index 0000000..51c7cbd --- /dev/null +++ b/.config/fish/functions/is_mac.fish @@ -0,0 +1,4 @@ +function is_mac + [ $(uname) = Darwin ] && return 0 || return 1 +end + diff --git a/.config/fish/functions/n.fish b/.config/fish/functions/n.fish new file mode 100644 index 0000000..a8c3dc4 --- /dev/null +++ b/.config/fish/functions/n.fish @@ -0,0 +1,36 @@ +# Rename this file to match the name of the function +# e.g. ~/.config/fish/functions/n.fish +# or, add the lines to the 'config.fish' file. + +function n --wraps nnn --description 'support nnn quit and change directory' + # Block nesting of nnn in subshells + if test -n "$NNNLVL" -a "$NNNLVL" -ge 1 + echo "nnn is already running" + return + end + + # 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 "-x" from both lines below, + # without changing the paths. + if test -n "$XDG_CONFIG_HOME" + set -x NNN_TMPFILE "$XDG_CONFIG_HOME/nnn/.lastd" + else + set -x NNN_TMPFILE "$HOME/.config/nnn/.lastd" + end + + # 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 function allows one to alias this function to `nnn` without + # making an infinitely recursive alias + command nnn $argv + + if test -e $NNN_TMPFILE + source $NNN_TMPFILE + rm $NNN_TMPFILE + end +end |