diff options
Diffstat (limited to 'fzf')
-rw-r--r-- | fzf/.config/fzfrc | 11 | ||||
-rw-r--r-- | fzf/.config/profile.d/30-fzf.sh | 14 | ||||
-rw-r--r-- | fzf/.config/zsh/.zshrc.d/90-fzf.zsh | 42 |
3 files changed, 41 insertions, 26 deletions
diff --git a/fzf/.config/fzfrc b/fzf/.config/fzfrc new file mode 100644 index 0000000..02570d7 --- /dev/null +++ b/fzf/.config/fzfrc @@ -0,0 +1,11 @@ +--bind ctrl-q:abort +--bind ctrl-y:preview-up +--bind ctrl-e:preview-down +--bind ctrl-u:preview-half-page-up +--bind ctrl-d:preview-half-page-down +--bind ctrl-b:preview-page-up +--bind ctrl-f:preview-page-down +--bind alt-up:half-page-up +--bind alt-down:half-page-down +--color fg:#ebdbb2,hl:#fabd2f,fg+:#ebdbb2,hl+:#fabd2f +--color info:#83a598,prompt:#bdae93,spinner:#fabd2f,pointer:#83a598,marker:#fe8019,header:#665c54 diff --git a/fzf/.config/profile.d/30-fzf.sh b/fzf/.config/profile.d/30-fzf.sh index d9e89cb..a0c2bc6 100644 --- a/fzf/.config/profile.d/30-fzf.sh +++ b/fzf/.config/profile.d/30-fzf.sh @@ -1,17 +1,5 @@ #!/bin/sh -export FZF_TMUX="${TMUX:+1}" -export FZF_TMUX_OPTS='-p80%,80%' export FZF_PREVIEW_COMMAND='less {} 2>/dev/null' export FZF_DEFAULT_COMMAND="fd --type f || git ls-tree -r --name-only HEAD || rg --files || find ." -export FZF_DEFAULT_OPTS='--bind ctrl-q:abort ---bind ctrl-y:preview-up ---bind ctrl-e:preview-down ---bind ctrl-u:preview-half-page-up ---bind ctrl-d:preview-half-page-down ---bind ctrl-b:preview-page-up ---bind ctrl-f:preview-page-down ---bind alt-up:half-page-up ---bind alt-down:half-page-down ---color fg:#ebdbb2,hl:#fabd2f,fg+:#ebdbb2,hl+:#fabd2f ---color info:#83a598,prompt:#bdae93,spinner:#fabd2f,pointer:#83a598,marker:#fe8019,header:#665c54' +export FZF_DEFAULT_OPTS_FILE="$XDG_CONFIG_HOME"/fzfrc 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 |