My zsh configuration
git clone https://github.com/m-col/zshrc
Files | Refs | Readme

-rw-r--r-- fzf.zsh


      1 #
      2 # fzf settings
      3 #
      4 
      5 if type fzf > /dev/null
      6 then
      7     # I considered disabling ctrl-t to set it to type out fz, but the default
      8     # ctrl-t can be helpful for e.g. pytest, selecting and pasting paths.
      9     #bindkey -s '^t' "fv\n"
     10 
     11 	#--preview 'bat -n --color=always {}'
     12 	#--bind 'ctrl-/:change-preview-window(down|hidden|)'
     13     export FZF_DEFAULT_OPTS="
     14 	--tmux
     15 	--walker-skip .git,node_modules,target,.mypy_cache,.venv,__pycache__,.DS_Store,ws
     16 	"
     17     export FZF_CTRL_T_COMMAND=""
     18     source <(fzf --zsh)
     19 
     20     _fzf-file-widget () {
     21 	INIT_BUFFER="$LBUFFER"
     22 	[[ -z "$INIT_BUFFER" ]] && LBUFFER="vim "
     23 
     24 	local suffix=""
     25 	[[ -n "$CLAUDE_CONTEXT_ID" ]] && suffix=".$CLAUDE_CONTEXT_ID"
     26 	local context_file="$HOME/.local/share/claude/context-files${suffix}"
     27 	local selected
     28 	selected=$({
     29 	    if [[ -f "$context_file" ]]; then
     30 		local f rel
     31 		while IFS= read -r f; do
     32 		    [[ -f "$f" ]] || continue
     33 		    rel="${f#$PWD/}"
     34 		    echo "$rel"
     35 		done < <(tail -r "$context_file")
     36 	    fi
     37 	    fd --type f --strip-cwd-prefix 2>/dev/null
     38 	} | awk '!seen[$0]++' | fzf)
     39 
     40 	if [[ -n "$selected" ]]; then
     41 	    LBUFFER="${LBUFFER}${(q)selected}"
     42 	    zle accept-line
     43 	else
     44 	    LBUFFER="$INIT_BUFFER"
     45 	fi
     46     }
     47 
     48     zle     -N            _fzf-file-widget
     49     bindkey -M vicmd '^P' _fzf-file-widget
     50     bindkey -M viins '^P' _fzf-file-widget
     51 fi
     52