# From https://github.com/patrickf3139/fzf.fish/blob/main/conf.d/fzf.fish # Set up the default, mnemonic key bindings unless the user has chosen to customize them if not set --query fzf_fish_custom_keybindings # \cf is Ctrl+f bind \cj '__fzf_search_current_dir' #bind \cr '__fzf_search_history' bind \cv '__fzf_search_shell_variables' # The following two key binding use Alt as an additional modifier key to avoid conflicts bind \e\cl '__fzf_search_git_log' bind \e\cs '__fzf_search_git_status' # set up the same key bindings for insert mode if using fish_vi_key_bindings if [ "$fish_key_bindings" = 'fish_vi_key_bindings' ] bind --mode insert \cf '__fzf_search_current_dir' bind --mode insert \cr '__fzf_search_history' bind --mode insert \cv '__fzf_search_shell_variables' bind --mode insert \e\cl '__fzf_search_git_log' bind --mode insert \e\cs '__fzf_search_git_status' end end # If FZF_DEFAULT_OPTS is not set, then set some sane defaults. This also affects fzf outside of this plugin. # See https://github.com/junegunn/fzf#environment-variables if not set --query FZF_DEFAULT_OPTS # cycle makes scrolling easier # reverse layout is more familiar as it mimicks the layout of git log, history, and env # border makes clear where the fzf window ends # height 75% allows you to view what you were doing and stay in context of your work # preview-window wrap wraps long lines in the preview window set --export FZF_DEFAULT_OPTS '--cycle --layout=reverse --border --height 75% --preview-window=wrap' end # Forgit configuration set FORGIT_FZF_DEFAULT_OPTS " $FZF_DEFAULT_OPTS --ansi --height='80%' --bind='alt-k:preview-up,alt-p:preview-up' --bind='alt-j:preview-down,alt-n:preview-down' --bind='ctrl-r:toggle-all' --bind='ctrl-s:toggle-sort' --bind='?:toggle-preview' --bind='alt-w:toggle-preview-wrap' --preview-window='right:60%' +1 $FORGIT_FZF_DEFAULT_OPTS " # register aliases if test -z "$FORGIT_NO_ALIASES" if test -n "$forgit_add" alias $forgit_add 'forgit::add' else alias ga 'forgit::add' end if test -n "$forgit_reset_head" alias $forgit_reset_head 'forgit::reset::head' else alias grh 'forgit::reset::head' end if test -n "$forgit_log" alias $forgit_log 'forgit::log' else alias glo 'forgit::log' end if test -n "$forgit_diff" alias $forgit_diff 'forgit::diff' else alias gd 'forgit::diff' end if test -n "$forgit_ignore" alias $forgit_ignore 'forgit::ignore' else alias gi 'forgit::ignore' end if test -n "$forgit_restore" alias $forgit_restore 'forgit::checkout_file' else alias gcf 'forgit::checkout_file' end if test -n "$forgit_clean" alias $forgit_clean 'forgit::clean' else alias gclean 'forgit::clean' end if test -n "$forgit_stash_show" alias $forgit_stash_show 'forgit::stash::show' else alias gss 'forgit::stash::show' end if test -n "$forgit_cherry_pick" alias $forgit_cherry_pick 'forgit::cherry::pick' else alias gcp 'forgit::cherry::pick' end end