commit
ede90d3e02
9 changed files with 91 additions and 99 deletions
11
README.md
11
README.md
|
@ -115,6 +115,15 @@ fzf` before configuring options. Same goes for `fzf_vcs` module.
|
||||||
From now on I assume that you're using one of the methods listed above for all
|
From now on I assume that you're using one of the methods listed above for all
|
||||||
configurations below.
|
configurations below.
|
||||||
|
|
||||||
|
### Windowing
|
||||||
|
If you're using Tmux, you do not have to worry about windowing, since fzf.kak
|
||||||
|
automatically creates all needed Tmux splits and panes for you. However in case
|
||||||
|
you're not using Tmux, fzf.kak uses `fzf_terminal_command` option to call windowing
|
||||||
|
command to create new windows. By default it is set to use `terminal` alias:
|
||||||
|
`terminal kak -c %val{session} -e "%arg{@}"`, but some terminals can provide
|
||||||
|
other aliases or commands, like `terminal-tab` in Kitty. You may want to edit
|
||||||
|
this variable accordingly to your personal preferences.
|
||||||
|
|
||||||
### Mappings
|
### Mappings
|
||||||
You can define what keys to use in `fzf` window via these options:
|
You can define what keys to use in `fzf` window via these options:
|
||||||
|
|
||||||
|
@ -171,7 +180,7 @@ option to `false`.
|
||||||
|
|
||||||
#### Highlighting preview window
|
#### Highlighting preview window
|
||||||
You also can highlight contents of the file displayed within preview window. To
|
You also can highlight contents of the file displayed within preview window. To
|
||||||
do so, you can specify which highlighter to use with `fzf_highlight_cmd` option.
|
do so, you can specify which highlighter to use with `fzf_highlight_command` option.
|
||||||
Supported highlighters are:
|
Supported highlighters are:
|
||||||
|
|
||||||
* [Bat][16]
|
* [Bat][16]
|
||||||
|
|
86
rc/fzf.kak
86
rc/fzf.kak
|
@ -57,7 +57,7 @@ These are default arguments for the tools above:
|
||||||
highlight: "highlight --failsafe -O ansi {}"
|
highlight: "highlight --failsafe -O ansi {}"
|
||||||
rouge: "rougify {}"
|
rouge: "rougify {}"
|
||||||
' \
|
' \
|
||||||
str fzf_highlight_cmd "highlight"
|
str fzf_highlight_command "highlight"
|
||||||
|
|
||||||
declare-option -docstring "height of fzf tmux split in screen lines or percents.
|
declare-option -docstring "height of fzf tmux split in screen lines or percents.
|
||||||
Default value: 25%%" \
|
Default value: 25%%" \
|
||||||
|
@ -84,34 +84,29 @@ str fzf_vertical_map 'ctrl-v'
|
||||||
declare-option -docstring "mapping to execute action in new horizontal split" \
|
declare-option -docstring "mapping to execute action in new horizontal split" \
|
||||||
str fzf_horizontal_map 'ctrl-s'
|
str fzf_horizontal_map 'ctrl-s'
|
||||||
|
|
||||||
|
declare-option -docstring 'command to use to create new window when not using tmux.
|
||||||
|
|
||||||
|
Default value: terminal kak -c %val{session} -e "%arg{@}"' \
|
||||||
|
str fzf_terminal_command 'terminal kak -c %val{session} -e "%arg{@}"'
|
||||||
|
|
||||||
try %{ declare-user-mode fzf }
|
try %{ declare-user-mode fzf }
|
||||||
|
|
||||||
define-command -hidden -docstring "wrapper command to create new vertical split" \
|
define-command -hidden -docstring "wrapper command to create new vertical split" \
|
||||||
fzf-vertical -params .. %{ try %{
|
fzf-vertical -params .. %{ evaluate-commands %{
|
||||||
tmux-terminal-vertical kak -c %val{session} -e "%arg{@}"
|
tmux-terminal-vertical kak -c %val{session} -e "%arg{@}"
|
||||||
} catch %{
|
|
||||||
tmux-new-vertical "%arg{@}"
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
define-command -hidden -docstring "wrapper command to create new horizontal split" \
|
define-command -hidden -docstring "wrapper command to create new horizontal split" \
|
||||||
fzf-horizontal -params .. %{ try %{
|
fzf-horizontal -params .. %{ evaluate-commands %{
|
||||||
tmux-terminal-horizontal kak -c %val{session} -e "%arg{@}"
|
tmux-terminal-horizontal kak -c %val{session} -e "%arg{@}"
|
||||||
} catch %{
|
|
||||||
tmux-new-horizontal "%arg{@}"
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
define-command -hidden -docstring "wrapper command to create new terminal" \
|
define-command -hidden -docstring "wrapper command to create new terminal" \
|
||||||
fzf-window -params .. %{ try %sh{
|
fzf-window -params .. %{ evaluate-commands %sh{
|
||||||
if [ -n "$kak_client_env_TMUX" ]; then
|
if [ -n "$kak_client_env_TMUX" ]; then
|
||||||
printf "%s\n" 'tmux-terminal-window kak -c %val{session} -e "%arg{@}"'
|
printf "%s\n" 'tmux-terminal-window kak -c %val{session} -e "%arg{@}"'
|
||||||
else
|
else
|
||||||
printf "%s\n" 'terminal kak -c %val{session} -e "%arg{@}"'
|
printf "%s\n" "$kak_opt_fzf_terminal_command"
|
||||||
fi
|
|
||||||
} catch %sh{
|
|
||||||
if [ -n "$kak_client_env_TMUX" ]; then
|
|
||||||
printf "%s\n" 'tmux-new-window "%arg{@}"'
|
|
||||||
else
|
|
||||||
printf "%s\n" 'new "%arg{@}"'
|
|
||||||
fi
|
fi
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
@ -144,16 +139,17 @@ fzf -params .. %{ evaluate-commands %sh{
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
case $1 in
|
case $1 in
|
||||||
-kak-cmd) shift; kakoune_cmd="$1" ;;
|
(-kak-cmd) shift; kakoune_cmd="$1" ;;
|
||||||
-multiple-cmd) shift; multiple_cmd="$1" ;;
|
(-multiple-cmd) shift; multiple_cmd="$1" ;;
|
||||||
-items-cmd) shift; items_cmd="$1 |" ;;
|
(-items-cmd) shift; items_cmd="$1 |" ;;
|
||||||
-fzf-impl) shift; fzf_impl="$1" ;;
|
(-fzf-impl) shift; fzf_impl="$1" ;;
|
||||||
-fzf-args) shift; fzf_args="$1" ;;
|
(-fzf-args) shift; fzf_args="$1" ;;
|
||||||
-preview-cmd) shift; preview_cmd="$1" ;;
|
(-preview-cmd) shift; preview_cmd="$1" ;;
|
||||||
-preview) preview="true" ;;
|
(-preview) preview="true" ;;
|
||||||
-filter) shift; filter="| $1" ;;
|
(-filter) shift; filter="| $1" ;;
|
||||||
-post-action) shift; post_action="$1" ;;
|
(-post-action) shift; post_action="$1" ;;
|
||||||
esac; shift
|
esac
|
||||||
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
[ -z "$multiple_cmd" ] && multiple_cmd="$kakoune_cmd"
|
[ -z "$multiple_cmd" ] && multiple_cmd="$kakoune_cmd"
|
||||||
|
@ -162,21 +158,21 @@ fzf -params .. %{ evaluate-commands %sh{
|
||||||
# bake position option to define them at runtime
|
# bake position option to define them at runtime
|
||||||
[ -n "${kak_client_env_TMUX}" ] && tmux_height="${kak_opt_fzf_preview_tmux_height}"
|
[ -n "${kak_client_env_TMUX}" ] && tmux_height="${kak_opt_fzf_preview_tmux_height}"
|
||||||
case ${kak_opt_fzf_preview_pos} in
|
case ${kak_opt_fzf_preview_pos} in
|
||||||
top|up) preview_position="pos=top:${kak_opt_fzf_preview_height};" ;;
|
(top|up) preview_position="pos=top:${kak_opt_fzf_preview_height};" ;;
|
||||||
bottom|down) preview_position="pos=down:${kak_opt_fzf_preview_height};" ;;
|
(bottom|down) preview_position="pos=down:${kak_opt_fzf_preview_height};" ;;
|
||||||
right) preview_position="pos=right:${kak_opt_fzf_preview_width};" ;;
|
(right) preview_position="pos=right:${kak_opt_fzf_preview_width};" ;;
|
||||||
left) preview_position="pos=left:${kak_opt_fzf_preview_width};" ;;
|
(left) preview_position="pos=left:${kak_opt_fzf_preview_width};" ;;
|
||||||
auto|*) preview_position="sleep 0.1; [ \$(tput cols) -gt \$(expr \$(tput lines) \* 2) ] && pos=right:${kak_opt_fzf_preview_width} || pos=top:${kak_opt_fzf_preview_height};"
|
(auto|*) preview_position="sleep 0.1; [ \$(tput cols) -gt \$(expr \$(tput lines) \* 2) ] && pos=right:${kak_opt_fzf_preview_width} || pos=top:${kak_opt_fzf_preview_height};"
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# handle preview if not defined explicitly with `-preview-cmd'
|
# handle preview if not defined explicitly with `-preview-cmd'
|
||||||
if [ ${kak_opt_fzf_preview} = "true" ] && [ -z "${preview_cmd}" ]; then
|
if [ ${kak_opt_fzf_preview} = "true" ] && [ -z "${preview_cmd}" ]; then
|
||||||
case ${kak_opt_fzf_highlight_cmd} in
|
case ${kak_opt_fzf_highlight_command} in
|
||||||
bat) highlight_cmd="bat --color=always --style=plain {}" ;;
|
(bat) highlight_cmd="bat --color=always --style=plain {}" ;;
|
||||||
coderay) highlight_cmd="coderay {}" ;;
|
(coderay) highlight_cmd="coderay {}" ;;
|
||||||
highlight) highlight_cmd="highlight --failsafe -O ansi {}" ;;
|
(highlight) highlight_cmd="highlight --failsafe -O ansi {}" ;;
|
||||||
rouge) highlight_cmd="rougify {}" ;;
|
(rouge) highlight_cmd="rougify {}" ;;
|
||||||
*) highlight_cmd="${kak_opt_fzf_highlight_cmd}" ;;
|
(*) highlight_cmd="${kak_opt_fzf_highlight_command}" ;;
|
||||||
esac
|
esac
|
||||||
preview_cmd="--preview '(${highlight_cmd} || cat {}) 2>/dev/null | head -n ${kak_opt_fzf_preview_lines}' --preview-window=\${pos}"
|
preview_cmd="--preview '(${highlight_cmd} || cat {}) 2>/dev/null | head -n ${kak_opt_fzf_preview_lines}' --preview-window=\${pos}"
|
||||||
fi
|
fi
|
||||||
|
@ -208,7 +204,7 @@ fzf -params .. %{ evaluate-commands %sh{
|
||||||
# `terminal' doesn't support any kind of width and height parameters, so tmux panes are created by tmux itself
|
# `terminal' doesn't support any kind of width and height parameters, so tmux panes are created by tmux itself
|
||||||
cmd="nop %sh{ command tmux split-window ${measure} ${tmux_height%%%*} '${fzfcmd}' }"
|
cmd="nop %sh{ command tmux split-window ${measure} ${tmux_height%%%*} '${fzfcmd}' }"
|
||||||
else
|
else
|
||||||
cmd="terminal %{${fzfcmd}}"
|
cmd="${kak_opt_fzf_terminal_command%% *} %{${fzfcmd}}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
printf "%s\n" "${cmd}"
|
printf "%s\n" "${cmd}"
|
||||||
|
@ -219,22 +215,26 @@ fzf -params .. %{ evaluate-commands %sh{
|
||||||
(
|
(
|
||||||
while read -r line; do
|
while read -r line; do
|
||||||
case ${line} in
|
case ${line} in
|
||||||
${kak_opt_fzf_window_map}) wincmd="fzf-window" ;;
|
(${kak_opt_fzf_window_map}) wincmd="fzf-window" ;;
|
||||||
${kak_opt_fzf_vertical_map}) wincmd="fzf-vertical" ;;
|
(${kak_opt_fzf_vertical_map}) wincmd="fzf-vertical" ;;
|
||||||
${kak_opt_fzf_horizontal_map}) wincmd="fzf-horizontal" ;;
|
(${kak_opt_fzf_horizontal_map}) wincmd="fzf-horizontal" ;;
|
||||||
*) item=${line} ;;
|
(*) item=${line} ;;
|
||||||
esac
|
esac
|
||||||
if [ -n "${item}" ]; then
|
if [ -n "${item}" ]; then
|
||||||
item=$(printf "%s\n" "${item}" | sed "s/@/@@/g;s/&/&&/g")
|
item=$(printf "%s\n" "${item}" | sed "s/@/@@/g;s/&/&&/g")
|
||||||
|
kakoune_cmd=$(printf "%s\n" "${kakoune_cmd}" | sed "s/&/&&/g")
|
||||||
printf "%s\n" "evaluate-commands -client ${kak_client} ${wincmd} %&${kakoune_cmd} %@${item}@&"
|
printf "%s\n" "evaluate-commands -client ${kak_client} ${wincmd} %&${kakoune_cmd} %@${item}@&"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
[ -n "${multiple_cmd}" ] && multiple_cmd=$(printf "%s\n" "${multiple_cmd}" | sed "s/&/&&/g")
|
||||||
while read -r line; do
|
while read -r line; do
|
||||||
printf "%s\n" "evaluate-commands -client ${kak_client} ${wincmd} %{${multiple_cmd} %{${line}}}"
|
line=$(printf "%s\n" "${line}" | sed "s/@/@@/g;s/&/&&/g")
|
||||||
|
printf "%s\n" "evaluate-commands -client ${kak_client} ${wincmd} %&${multiple_cmd} %@${line}@&"
|
||||||
done
|
done
|
||||||
if [ -n "${post_action}" ]; then
|
if [ -n "${post_action}" ]; then
|
||||||
printf "%s\n" "evaluate-commands -client ${kak_client} %{${post_action}}"
|
post_action=$(printf "%s\n" "${post_action}" | sed "s/&/&&/g")
|
||||||
|
printf "%s\n" "evaluate-commands -client ${kak_client} %&${post_action}&"
|
||||||
fi
|
fi
|
||||||
) < ${result} | kak -p ${kak_session}
|
) < ${result} | kak -p ${kak_session}
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -25,10 +25,8 @@ define-command -hidden fzf-bzr %{ evaluate-commands %sh{
|
||||||
current_path=$(pwd)
|
current_path=$(pwd)
|
||||||
repo_root=$(bzr root)
|
repo_root=$(bzr root)
|
||||||
case $kak_opt_fzf_bzr_command in
|
case $kak_opt_fzf_bzr_command in
|
||||||
bzr)
|
(bzr) cmd="bzr ls -R --versioned -0" ;;
|
||||||
cmd="bzr ls -R --versioned -0" ;;
|
(bzr*) cmd=$kak_opt_fzf_bzr_command ;;
|
||||||
bzr*)
|
|
||||||
cmd=$kak_opt_fzf_bzr_command ;;
|
|
||||||
esac
|
esac
|
||||||
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect $kak_opt_fzf_vertical_map --expect $kak_opt_fzf_horizontal_map"
|
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect $kak_opt_fzf_vertical_map --expect $kak_opt_fzf_horizontal_map"
|
||||||
printf "%s\n" "fzf -kak-cmd %{cd $repo_root; edit -existing} -items-cmd %{$cmd} -fzf-args %{-m --expect $kak_opt_fzf_window_map $additional_flags} -post-action %{cd $current_path}"
|
printf "%s\n" "fzf -kak-cmd %{cd $repo_root; edit -existing} -items-cmd %{$cmd} -fzf-args %{-m --expect $kak_opt_fzf_window_map $additional_flags} -post-action %{cd $current_path}"
|
||||||
|
|
|
@ -25,10 +25,8 @@ define-command -override -hidden fzf-git %{ evaluate-commands %sh{
|
||||||
current_path=$(pwd)
|
current_path=$(pwd)
|
||||||
repo_root=$(git rev-parse --show-toplevel)
|
repo_root=$(git rev-parse --show-toplevel)
|
||||||
case $kak_opt_fzf_git_command in
|
case $kak_opt_fzf_git_command in
|
||||||
git)
|
(git) cmd="git ls-tree --full-tree --name-only -r HEAD" ;;
|
||||||
cmd="git ls-tree --full-tree --name-only -r HEAD" ;;
|
(git*) cmd=$kak_opt_fzf_git_command ;;
|
||||||
git*)
|
|
||||||
cmd=$kak_opt_fzf_git_command ;;
|
|
||||||
esac
|
esac
|
||||||
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect $kak_opt_fzf_vertical_map --expect $kak_opt_fzf_horizontal_map"
|
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect $kak_opt_fzf_vertical_map --expect $kak_opt_fzf_horizontal_map"
|
||||||
printf "%s\n" "fzf -kak-cmd %{cd $repo_root; edit -existing} -items-cmd %{$cmd} -fzf-args %{-m --expect $kak_opt_fzf_window_map $additional_flags} -post-action %{cd $current_path}"
|
printf "%s\n" "fzf -kak-cmd %{cd $repo_root; edit -existing} -items-cmd %{$cmd} -fzf-args %{-m --expect $kak_opt_fzf_window_map $additional_flags} -post-action %{cd $current_path}"
|
||||||
|
|
|
@ -25,10 +25,8 @@ define-command -hidden fzf-hg %{ evaluate-commands %sh{
|
||||||
current_path=$(pwd)
|
current_path=$(pwd)
|
||||||
repo_root=$(hg root)
|
repo_root=$(hg root)
|
||||||
case $kak_opt_fzf_hg_command in
|
case $kak_opt_fzf_hg_command in
|
||||||
hg)
|
(hg) cmd="hg locate -f -0 -I .hg locate -f -0 -I ." ;;
|
||||||
cmd="hg locate -f -0 -I .hg locate -f -0 -I ." ;;
|
(hg*) cmd=$kak_opt_fzf_hg_command ;;
|
||||||
hg*)
|
|
||||||
cmd=$kak_opt_fzf_hg_command ;;
|
|
||||||
esac
|
esac
|
||||||
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect $kak_opt_fzf_vertical_map --expect $kak_opt_fzf_horizontal_map"
|
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect $kak_opt_fzf_vertical_map --expect $kak_opt_fzf_horizontal_map"
|
||||||
printf "%s\n" "fzf -kak-cmd %{cd $repo_root; edit -existing} -items-cmd %{$cmd} -fzf-args %{-m --expect $kak_opt_fzf_window_map $additional_flags} -post-action %{cd $current_path}"
|
printf "%s\n" "fzf -kak-cmd %{cd $repo_root; edit -existing} -items-cmd %{$cmd} -fzf-args %{-m --expect $kak_opt_fzf_window_map $additional_flags} -post-action %{cd $current_path}"
|
||||||
|
|
|
@ -25,10 +25,8 @@ define-command -hidden fzf-svn %{ evaluate-commands %sh{
|
||||||
current_path=$(pwd)
|
current_path=$(pwd)
|
||||||
repo_root=$(svn info | awk -F': ' '/Working Copy Root Path: .*/ {print $2}')
|
repo_root=$(svn info | awk -F': ' '/Working Copy Root Path: .*/ {print $2}')
|
||||||
case $kak_opt_fzf_svn_command in
|
case $kak_opt_fzf_svn_command in
|
||||||
svn)
|
(svn) cmd="svn list -R $repo_root | grep -v '$/'" ;;
|
||||||
cmd="svn list -R $repo_root | grep -v '$/'" ;;
|
(svn*) cmd=$kak_opt_fzf_svn_command ;;
|
||||||
svn*)
|
|
||||||
cmd=$kak_opt_fzf_svn_command ;;
|
|
||||||
esac
|
esac
|
||||||
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect $kak_opt_fzf_vertical_map --expect $kak_opt_fzf_horizontal_map"
|
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect $kak_opt_fzf_vertical_map --expect $kak_opt_fzf_horizontal_map"
|
||||||
printf "%s\n" "fzf -kak-cmd %{cd $repo_root; edit -existing} -items-cmd %{$cmd} -fzf-args %{-m --expect $kak_opt_fzf_window_map $additional_flags} -post-action %{cd $current_path}"
|
printf "%s\n" "fzf -kak-cmd %{cd $repo_root; edit -existing} -items-cmd %{$cmd} -fzf-args %{-m --expect $kak_opt_fzf_window_map $additional_flags} -post-action %{cd $current_path}"
|
||||||
|
|
|
@ -24,7 +24,7 @@ declare-option -docstring 'command to show list of directories in preview window
|
||||||
Default value:
|
Default value:
|
||||||
tree -d
|
tree -d
|
||||||
' \
|
' \
|
||||||
str cd_preview_cmd "tree -d {}"
|
str cd_preview_command "tree -d {}"
|
||||||
|
|
||||||
declare-option -docstring 'maximum amount of previewed directories' \
|
declare-option -docstring 'maximum amount of previewed directories' \
|
||||||
int fzf_preview_dirs '300'
|
int fzf_preview_dirs '300'
|
||||||
|
@ -37,16 +37,13 @@ define-command -hidden fzf-cd %{ evaluate-commands %sh{
|
||||||
tmux_height=$kak_opt_fzf_tmux_height
|
tmux_height=$kak_opt_fzf_tmux_height
|
||||||
printf '%s\n' "info -title %{fzf change directory} %{Change the server's working directory
|
printf '%s\n' "info -title %{fzf change directory} %{Change the server's working directory
|
||||||
current path: $(pwd)}"
|
current path: $(pwd)}"
|
||||||
|
|
||||||
case $kak_opt_fzf_cd_command in
|
case $kak_opt_fzf_cd_command in
|
||||||
find)
|
(find) items_command="(echo .. && find . \( -path '*/.svn*' -o -path '*/.git*' \) -prune -o -type d -print)" ;;
|
||||||
items_command="(echo .. && find . \( -path '*/.svn*' -o -path '*/.git*' \) -prune -o -type d -print)" ;;
|
(*) items_command=$kak_opt_fzf_cd_command ;;
|
||||||
*)
|
|
||||||
items_command=$kak_opt_fzf_cd_command ;;
|
|
||||||
esac
|
esac
|
||||||
if [ "$kak_opt_fzf_cd_preview" = "true" ]; then
|
if [ "$kak_opt_fzf_cd_preview" = "true" ]; then
|
||||||
preview_flag="-preview"
|
preview_flag="-preview"
|
||||||
preview="--preview '($kak_opt_cd_preview_cmd) 2>/dev/null | head -n $kak_opt_fzf_preview_dirs'"
|
preview="--preview '($kak_opt_cd_preview_command) 2>/dev/null | head -n $kak_opt_fzf_preview_dirs'"
|
||||||
fi
|
fi
|
||||||
printf "%s\n" "fzf $preview_flag -kak-cmd %{change-directory} -items-cmd %{$items_command} -preview-cmd %{$preview} -post-action %{fzf-cd}"
|
printf "%s\n" "fzf $preview_flag -kak-cmd %{change-directory} -items-cmd %{$items_command} -preview-cmd %{$preview} -post-action %{fzf-cd}"
|
||||||
}}
|
}}
|
||||||
|
|
|
@ -34,20 +34,14 @@ define-command -hidden fzf-file %{ evaluate-commands %sh{
|
||||||
kak_opt_fzf_file_command="find"
|
kak_opt_fzf_file_command="find"
|
||||||
fi
|
fi
|
||||||
case $kak_opt_fzf_file_command in
|
case $kak_opt_fzf_file_command in
|
||||||
find)
|
(find) cmd="find -L . -type f" ;;
|
||||||
cmd="find -L . -type f" ;;
|
(ag) cmd="ag -l -f --hidden --one-device . " ;;
|
||||||
ag)
|
(rg) cmd="rg -L --hidden --files" ;;
|
||||||
cmd="ag -l -f --hidden --one-device . " ;;
|
(fd) cmd="fd --type f --follow" ;;
|
||||||
rg)
|
(find*|ag*|rg*|fd*) cmd=$kak_opt_fzf_file_command ;;
|
||||||
cmd="rg -L --hidden --files" ;;
|
(*) items_executable=$(printf "%s\n" "$kak_opt_fzf_file_command" | grep -o -E "[[:alpha:]]+" | head -1)
|
||||||
fd)
|
printf "%s\n" "echo -markup '{Information}'Warning: '$executable'' is not supported by fzf.kak.'"
|
||||||
cmd="fd --type f --follow" ;;
|
cmd=$kak_opt_fzf_file_command ;;
|
||||||
find*|ag*|rg*|fd*)
|
|
||||||
cmd=$kak_opt_fzf_file_command ;;
|
|
||||||
*)
|
|
||||||
items_executable=$(printf "%s\n" "$kak_opt_fzf_file_command" | grep -o -E "[[:alpha:]]+" | head -1)
|
|
||||||
printf "%s\n" "echo -markup '{Information}'Warning: '$executable'' is not supported by fzf.kak.'"
|
|
||||||
cmd=$kak_opt_fzf_file_command ;;
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
cmd="$cmd 2>/dev/null"
|
cmd="$cmd 2>/dev/null"
|
||||||
|
|
|
@ -49,16 +49,16 @@ define-command -hidden fzf-save-path-as-project-no-prompt %{ evaluate-commands %
|
||||||
mkdir -p "${kak_opt_fzf_project_file%/*}"
|
mkdir -p "${kak_opt_fzf_project_file%/*}"
|
||||||
# portable version of `basename'
|
# portable version of `basename'
|
||||||
base() {
|
base() {
|
||||||
filename=$1
|
filename="$1"
|
||||||
case "$filename" in
|
case "$filename" in
|
||||||
*/*[!/]*)
|
(*/*[!/]*)
|
||||||
trail=${filename##*[!/]}
|
trail=${filename##*[!/]}
|
||||||
filename=${filename%%"$trail"}
|
filename=${filename%%"$trail"}
|
||||||
base=${filename##*/} ;;
|
base=${filename##*/} ;;
|
||||||
*[!/]*)
|
(*[!/]*)
|
||||||
trail=${filename##*[!/]}
|
trail=${filename##*[!/]}
|
||||||
base=${filename%%"$trail"} ;;
|
base=${filename%%"$trail"} ;;
|
||||||
*) base="/" ;;
|
(*) base="/" ;;
|
||||||
esac
|
esac
|
||||||
printf "%s\n" "${base}"
|
printf "%s\n" "${base}"
|
||||||
}
|
}
|
||||||
|
@ -84,16 +84,16 @@ fzf-add-project -file-completion -params 1..2 %{ evaluate-commands %sh{
|
||||||
fi
|
fi
|
||||||
# portable version of `basename'
|
# portable version of `basename'
|
||||||
base() {
|
base() {
|
||||||
filename=$1
|
filename="$1"
|
||||||
case "$filename" in
|
case "$filename" in
|
||||||
*/*[!/]*)
|
(*/*[!/]*)
|
||||||
trail=${filename##*[!/]}
|
trail=${filename##*[!/]}
|
||||||
filename=${filename%%"$trail"}
|
filename=${filename%%"$trail"}
|
||||||
base=${filename##*/} ;;
|
base=${filename##*/} ;;
|
||||||
*[!/]*)
|
(*[!/]*)
|
||||||
trail=${filename##*[!/]}
|
trail=${filename##*[!/]}
|
||||||
base=${filename%%"$trail"} ;;
|
base=${filename%%"$trail"} ;;
|
||||||
*) base="/" ;;
|
(*) base="/" ;;
|
||||||
esac
|
esac
|
||||||
printf "%s\n" "${base}"
|
printf "%s\n" "${base}"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue