vitorpy's Dotfiles
1function _fzf_wrapper --description "Prepares some environment variables before executing fzf."
2 # Make sure fzf uses fish to execute preview commands, some of which
3 # are autoloaded fish functions so don't exist in other shells.
4 # Use --function so that it doesn't clobber SHELL outside this function.
5 set -f --export SHELL (command --search fish)
6
7 # If neither FZF_DEFAULT_OPTS nor FZF_DEFAULT_OPTS_FILE are set, then set some sane defaults.
8 # See https://github.com/junegunn/fzf#environment-variables
9 set --query FZF_DEFAULT_OPTS FZF_DEFAULT_OPTS_FILE
10 if test $status -eq 2
11 # cycle allows jumping between the first and last results, making scrolling faster
12 # layout=reverse lists results top to bottom, mimicking the familiar layouts of git log, history, and env
13 # border shows where the fzf window begins and ends
14 # height=90% leaves space to see the current command and some scrollback, maintaining context of work
15 # preview-window=wrap wraps long lines in the preview window, making reading easier
16 # marker=* makes the multi-select marker more distinguishable from the pointer (since both default to >)
17 set --export FZF_DEFAULT_OPTS '--cycle --layout=reverse --border --height=90% --preview-window=wrap --marker="*"'
18 end
19
20 fzf $argv
21end