From c3362aefa2e762211409923cfff065541bebf9e7 Mon Sep 17 00:00:00 2001 From: Saumit Dinesan Date: Sun, 22 May 2022 00:37:40 +0530 Subject: ble.sh & z4h addition --- .local/src/blesh/contrib/fzf-key-bindings.bash | 54 ++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .local/src/blesh/contrib/fzf-key-bindings.bash (limited to '.local/src/blesh/contrib/fzf-key-bindings.bash') diff --git a/.local/src/blesh/contrib/fzf-key-bindings.bash b/.local/src/blesh/contrib/fzf-key-bindings.bash new file mode 100644 index 0000000..9ef2774 --- /dev/null +++ b/.local/src/blesh/contrib/fzf-key-bindings.bash @@ -0,0 +1,54 @@ +# ble/contrib/fzf-key-bindings.bash (C) 2020, akinomyoga + +ble-import contrib/fzf-initialize + +[[ $- == *i* ]] || return 0 + +ble/function#push bind : +if [[ -f $_ble_contrib_fzf_base/key-bindings.bash ]]; then + source "$_ble_contrib_fzf_base/key-bindings.bash" +elif [[ -f $_ble_contrib_fzf_base/shell/key-bindings.bash ]]; then + source "$_ble_contrib_fzf_base/shell/key-bindings.bash" +fi +ble/function#pop bind + +function ble/contrib/fzf-key-bindings/is-fzf-above-7c447bbd { + local def; ble/function#getdef __fzf_history__ + [[ $def == *READLINE_LINE=* ]] +} + +# CTRL-T - Paste the selected file path into the command line +ble-bind -m emacs -x C-t fzf-file-widget +ble-bind -m vi_imap -x C-t fzf-file-widget +ble-bind -m vi_nmap -s C-t 'i\C-t' + +# CTRL-R - Paste the selected command from history into the command line +ble-bind -m emacs -x C-r fzf-history-widget +ble-bind -m vi_imap -x C-r fzf-history-widget +ble-bind -m vi_nmap -s C-r 'i\C-r' +function fzf-history-widget { + READLINE_LINE=$(history -p "$(__fzf_history__)") + READLINE_POINT=${#READLINE_LINE} +} +((_ble_bash>=40000)) && + ble/contrib/fzf-key-bindings/is-fzf-above-7c447bbd && + function fzf-history-widget { __fzf_history__; } + +# ALT-C - cd into the selected directory +ble-bind -m emacs -c M-c 'eval "$(__fzf_cd__)"' +ble-bind -m vi_imap -c M-c 'eval "$(__fzf_cd__)"' +ble-bind -m vi_nmap -c M-c 'eval "$(__fzf_cd__)"' + +# patch fzf functions +ble/function#advice around fzf-file-widget ble/contrib/fzf-key-bindings.advice +ble/function#advice around __fzf_history__ ble/contrib/fzf-key-bindings.advice +ble/function#advice around __fzf_cd__ ble/contrib/fzf-key-bindings.advice +function ble/contrib/fzf-key-bindings.advice { + if [[ ! $_ble_attached ]]; then + ble/function#advice/do + return + fi + ble/term/leave-for-widget + ble/function#advice/do + ble/term/enter-for-widget +} -- cgit v1.2.3