commit
6791284c9f
2 changed files with 27 additions and 9 deletions
|
@ -14,6 +14,21 @@ Default value:
|
||||||
" \
|
" \
|
||||||
str fzf_cd_command "find"
|
str fzf_cd_command "find"
|
||||||
|
|
||||||
|
declare-option -docstring 'allow showing preview window while changing directories
|
||||||
|
Default value:
|
||||||
|
false
|
||||||
|
' \
|
||||||
|
bool fzf_cd_preview false
|
||||||
|
|
||||||
|
declare-option -docstring 'command to show list of directories in preview window
|
||||||
|
Default value:
|
||||||
|
tree -d
|
||||||
|
' \
|
||||||
|
str cd_preview_cmd "tree -d {}"
|
||||||
|
|
||||||
|
declare-option -docstring 'maximum amount of previewed directories' \
|
||||||
|
int fzf_preview_dirs '300'
|
||||||
|
|
||||||
map global fzf -docstring "change directory" 'c' '<esc>: fzf-cd<ret>'
|
map global fzf -docstring "change directory" 'c' '<esc>: fzf-cd<ret>'
|
||||||
|
|
||||||
define-command -hidden fzf-cd %{ evaluate-commands %sh{
|
define-command -hidden fzf-cd %{ evaluate-commands %sh{
|
||||||
|
@ -26,6 +41,9 @@ define-command -hidden fzf-cd %{ evaluate-commands %sh{
|
||||||
*)
|
*)
|
||||||
items_command=$kak_opt_fzf_cd_command ;;
|
items_command=$kak_opt_fzf_cd_command ;;
|
||||||
esac
|
esac
|
||||||
printf "%s\n" "fzf %{change-directory} %{$items_command} %{} %{fzf-cd}"
|
if [ $kak_opt_fzf_cd_preview = "true" ]; then
|
||||||
|
preview="--preview '($kak_opt_cd_preview_cmd) 2>/dev/null | head -n $kak_opt_fzf_preview_dirs'"
|
||||||
|
fi
|
||||||
|
printf "%s\n" "fzf %{change-directory} %{$items_command} %{$preview} %{fzf-cd}"
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
16
rc/fzf.kak
16
rc/fzf.kak
|
@ -104,7 +104,7 @@ fzf -params 2..4 %{ evaluate-commands %sh{
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$command" = "edit" ] && [ $kak_opt_fzf_preview = "true" ]; then
|
if [ $command = "edit" ] && [ $kak_opt_fzf_preview = "true" ]; then
|
||||||
case $kak_opt_fzf_highlighter in
|
case $kak_opt_fzf_highlighter in
|
||||||
bat)
|
bat)
|
||||||
highlighter="bat --color=always --style=plain {}" ;;
|
highlighter="bat --color=always --style=plain {}" ;;
|
||||||
|
@ -122,16 +122,16 @@ fzf -params 2..4 %{ evaluate-commands %sh{
|
||||||
highlighter=$kak_opt_fzf_highlighter ;;
|
highlighter=$kak_opt_fzf_highlighter ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [ -n "$kak_client_env_TMUX" ]; then
|
tmux_height=$kak_opt_fzf_tmux_height_file_preview
|
||||||
preview_pos="pos=right:$kak_opt_fzf_preview_width;"
|
|
||||||
tmux_height=$kak_opt_fzf_tmux_height_file_preview
|
|
||||||
else
|
|
||||||
preview_pos="sleep 0.1; [ \$(tput cols) -gt \$(expr \$(tput lines) \* 2) ] && pos=right:$kak_opt_fzf_preview_width || pos=top:$kak_opt_fzf_preview_height;"
|
|
||||||
fi
|
|
||||||
|
|
||||||
additional_flags="--preview '($highlighter || cat {}) 2>/dev/null | head -n $kak_opt_fzf_preview_lines' --preview-window=\$pos $additional_flags"
|
additional_flags="--preview '($highlighter || cat {}) 2>/dev/null | head -n $kak_opt_fzf_preview_lines' --preview-window=\$pos $additional_flags"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "$kak_client_env_TMUX" ]; then
|
||||||
|
preview_pos="pos=right:$kak_opt_fzf_preview_width;"
|
||||||
|
else
|
||||||
|
preview_pos="sleep 0.1; [ \$(tput cols) -gt \$(expr \$(tput lines) \* 2) ] && pos=right:$kak_opt_fzf_preview_width || pos=top:$kak_opt_fzf_preview_height;"
|
||||||
|
fi
|
||||||
|
|
||||||
tmp=$(mktemp ${TMPDIR:-/tmp}/kak-fzf-tmp.XXXXXX)
|
tmp=$(mktemp ${TMPDIR:-/tmp}/kak-fzf-tmp.XXXXXX)
|
||||||
fzfcmd=$(mktemp ${TMPDIR:-/tmp}/kak-fzfcmd.XXXXXX)
|
fzfcmd=$(mktemp ${TMPDIR:-/tmp}/kak-fzfcmd.XXXXXX)
|
||||||
printf "%s\n" "cd $PWD && $preview_pos $items_command | SHELL=$(command -v sh) fzf $additional_flags > $tmp" > $fzfcmd
|
printf "%s\n" "cd $PWD && $preview_pos $items_command | SHELL=$(command -v sh) fzf $additional_flags > $tmp" > $fzfcmd
|
||||||
|
|
Loading…
Reference in a new issue