From c64a1d0b5483551f5d9fa5f7637e2c7431d05c91 Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Sun, 11 Aug 2024 16:22:28 -0500 Subject: fix(fzf): clean up config --- fzf/.config/zsh/.zshrc.d/90-fzf.zsh | 42 +++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 13 deletions(-) (limited to 'fzf/.config/zsh/.zshrc.d/90-fzf.zsh') diff --git a/fzf/.config/zsh/.zshrc.d/90-fzf.zsh b/fzf/.config/zsh/.zshrc.d/90-fzf.zsh index 58e0454..664e08c 100644 --- a/fzf/.config/zsh/.zshrc.d/90-fzf.zsh +++ b/fzf/.config/zsh/.zshrc.d/90-fzf.zsh @@ -1,20 +1,36 @@ #!/bin/zsh -if [ -r "/usr/share/fzf/completion.zsh" ]; then - source /usr/share/fzf/completion.zsh -fi +fzf-history-widget() { + local selected + setopt localoptions noglobsubst noposixbuiltins pipefail no_aliases noglob nobash_rematch 2> /dev/null -if [ -r "/usr/share/fzf/key-bindings.zsh" ]; then - source /usr/share/fzf/key-bindings.zsh - for keymap in emacs vicmd viins; do - bindkey -rM $keymap '\ec' - bindkey -rM $keymap '^T' - done -fi + selected=$(printf '%s\t%s\000' "${(kv)history[@]}" | + perl -0 -ne 'if (!$seen{(/^\s*[0-9]+\**\t(.*)/s, $1)}++) { s/\n/\n\t/g; print; }' | + fzf -n2..,.. --scheme=history --bind=ctrl-r:toggle-sort --wrap-sign '\t↳ ' --query=${(qqq)LBUFFER} +m --read0) + + local ret=$? + if [ -n "$selected" ]; then + if [[ $(awk '{print $1; exit}' <<< "$selected") =~ ^[1-9][0-9]* ]]; then + zle vi-fetch-history -n $MATCH + else + LBUFFER="$selected" + fi + fi + zle reset-prompt + return $ret +} + +zle -N fzf-history-widget +bindkey -M emacs '^R' fzf-history-widget +bindkey -M vicmd '^R' fzf-history-widget +bindkey -M viins '^R' fzf-history-widget if [ -n "$BASE16_THEME" ] && [ -n "$BASE16_SHELL_ENABLE_VARS" ]; then export FZF_DEFAULT_OPTS="$FZF_DEFAULT_OPTS ---color=bg+:#$BASE16_COLOR_01_HEX,bg:#$BASE16_COLOR_00_HEX,spinner:#$BASE16_COLOR_0C_HEX,hl:#$BASE16_COLOR_0D_HEX ---color=fg:#$BASE16_COLOR_04_HEX,header:#$BASE16_COLOR_0D_HEX,info:#$BASE16_COLOR_0A_HEX,pointer:#$BASE16_COLOR_0C_HEX ---color=marker:#$BASE16_COLOR_0C_HEX,fg+:#$BASE16_COLOR_06_HEX,prompt:#$BASE16_COLOR_0A_HEX,hl+:#$BASE16_COLOR_0D_HEX" + --color=bg+:#$BASE16_COLOR_01_HEX,bg:#$BASE16_COLOR_00_HEX + --color=fg:#$BASE16_COLOR_04_HEX,fg+:#$BASE16_COLOR_06_HEX + --color=hl:#$BASE16_COLOR_0D_HEX,hl+:#$BASE16_COLOR_0D_HEX + --color=info:#$BASE16_COLOR_0A_HEX,header:#$BASE16_COLOR_0D_HEX + --color=prompt:#$BASE16_COLOR_0A_HEX,marker:#$BASE16_COLOR_0C_HEX + --color=pointer:#$BASE16_COLOR_0C_HEX,spinner:#$BASE16_COLOR_0C_HEX" fi -- cgit v1.2.3-70-g09d2