1
0
Fork 0

make keys mapable. Fix #58

This commit is contained in:
Andrey Orst 2019-05-13 21:34:46 +03:00
parent fcb86e9bed
commit 8382d908d0
11 changed files with 55 additions and 35 deletions

View file

@ -109,6 +109,17 @@ is being used to create new windows.
**fzf.kak** features a lot of settings via options that can be altered to change **fzf.kak** features a lot of settings via options that can be altered to change
how **fzf.kak** behaves. how **fzf.kak** behaves.
### Mappings
You can define what keys to use in `fzf` window via these options:
- `fzf_window_map` - mapping to perform an action in new window,
- `fzf_vertical_map` - mapping to perform an action in new vertical split
(Tmux),
- `fzf_horizontal_map` - mapping to perform an action in new horizontal split.
These options should be set to work with fzf `--expect` parameter, so check out
fzf documentation on this.
### File command ### File command
You can configure what command to use to search for files, and it's arguments. You can configure what command to use to search for files, and it's arguments.
Supported tools are [GNU Find][12], [The Silver Searcher][13], [ripgrep][14], Supported tools are [GNU Find][12], [The Silver Searcher][13], [ripgrep][14],

View file

@ -66,6 +66,15 @@ declare-option -docstring "height of preview window.
Default value: 60%%" \ Default value: 60%%" \
str fzf_preview_height '60%' str fzf_preview_height '60%'
declare-option -docstring "mapping to execute action in new window" \
str fzf_window_map 'ctrl-w'
declare-option -docstring "mapping to execute action in new vertical split" \
str fzf_vertical_map 'ctrl-v'
declare-option -docstring "mapping to execute action in new horizontal split" \
str fzf_horizontal_map 'ctrl-s'
define-command -docstring "Enter fzf-mode. define-command -docstring "Enter fzf-mode.
fzf-mode contains mnemonic key bindings for every fzf.kak command fzf-mode contains mnemonic key bindings for every fzf.kak command
@ -211,9 +220,9 @@ fzf -params .. %{ evaluate-commands %sh{
( (
while read -r line; do while read -r line; do
case ${line} in case ${line} in
ctrl-w) wincmd="fzf-window" ;; ${kak_opt_fzf_window_map}) wincmd="fzf-window" ;;
ctrl-s) wincmd="fzf-vertical" ;; ${kak_opt_fzf_vertical_map}) wincmd="fzf-vertical" ;;
ctrl-v) 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

View file

@ -30,8 +30,8 @@ define-command -hidden fzf-bzr %{ evaluate-commands %sh{
bzr*) bzr*)
cmd=$kak_opt_fzf_bzr_command ;; cmd=$kak_opt_fzf_bzr_command ;;
esac esac
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect ctrl-v --expect ctrl-s" [ ! -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 ctrl-w $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}"
}} }}
§ §

View file

@ -30,8 +30,8 @@ define-command -override -hidden fzf-git %{ evaluate-commands %sh{
git*) git*)
cmd=$kak_opt_fzf_git_command ;; cmd=$kak_opt_fzf_git_command ;;
esac esac
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect ctrl-v --expect ctrl-s" [ ! -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 ctrl-w $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}"
}} }}
§ §

View file

@ -30,8 +30,8 @@ define-command -hidden fzf-hg %{ evaluate-commands %sh{
hg*) hg*)
cmd=$kak_opt_fzf_hg_command ;; cmd=$kak_opt_fzf_hg_command ;;
esac esac
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect ctrl-v --expect ctrl-s" [ ! -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 ctrl-w $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}"
}} }}
§ §

View file

@ -29,8 +29,8 @@ define-command -hidden fzf-svn %{ evaluate-commands %sh{
svn*) svn*)
cmd=$kak_opt_fzf_svn_command ;; cmd=$kak_opt_fzf_svn_command ;;
esac esac
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect ctrl-v --expect ctrl-s" [ ! -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 ctrl-w $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}"
}} }}
§ §

View file

@ -22,14 +22,14 @@ define-command -hidden fzf-buffer %{ evaluate-commands %sh{
message="Set buffer to edit in current client. message="Set buffer to edit in current client.
<ret>: switch to selected buffer. <ret>: switch to selected buffer.
<c-w>: open buffer in new window" $kak_opt_fzf_window_map: open buffer in new window"
[ ! -z "${kak_client_env_TMUX}" ] && tmux_keybindings=" [ ! -z "${kak_client_env_TMUX}" ] && tmux_keybindings="
<c-s>: open buffer in horizontal split $kak_opt_fzf_horizontal_map: open buffer in horizontal split
<c-v>: open buffer in vertical split" $kak_opt_fzf_vertical_map: open buffer in vertical split"
printf "%s\n" "info -title 'fzf buffer' '$message$tmux_keybindings'" printf "%s\n" "info -title 'fzf buffer' '$message$tmux_keybindings'"
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect ctrl-v --expect ctrl-s" [ ! -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 %{buffer} -items-cmd %{(cat $buffers; rm $buffers)} -fzf-args %{--expect ctrl-w $additional_flags}" printf "%s\n" "fzf -kak-cmd %{buffer} -items-cmd %{(cat $buffers; rm $buffers)} -fzf-args %{--expect $kak_opt_fzf_window_map $additional_flags}"
}} }}
§ §

View file

@ -815,17 +815,17 @@ define-command -hidden fzf-tag -params ..2 %{ evaluate-commands %sh{
message="Jump to a symbol''s definition message="Jump to a symbol''s definition
<ret>: open tag in new buffer <ret>: open tag in new buffer
<c-w>: open tag in new terminal" $kak_opt_fzf_window_map: open tag in new terminal"
[ -n "${kak_client_env_TMUX}" ] && tmux_keybindings=" [ -n "${kak_client_env_TMUX}" ] && tmux_keybindings="
<c-s>: open tag in horizontal split $kak_opt_fzf_horizontal_map: open tag in horizontal split
<c-v>: open tag in vertical split" $kak_opt_fzf_vertical_map: open tag in vertical split"
printf "%s\n" "info -title 'fzf tag' '$message$tmux_keybindings'" printf "%s\n" "info -title 'fzf tag' '$message$tmux_keybindings'"
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect ctrl-v --expect ctrl-s" [ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect $kak_opt_fzf_vertical_map --expect $kak_opt_fzf_horizontal_map"
printf "%s\n" "set-option -add window ctagsfiles %{$path/$kak_opt_fzf_tag_file_name}" printf "%s\n" "set-option -add window ctagsfiles %{$path/$kak_opt_fzf_tag_file_name}"
printf "%s\n" "fzf -kak-cmd %{ctags-search} -items-cmd %{$cmd | awk '!a[\$0]++'} -fzf-args %{--expect ctrl-w $additional_flags}" printf "%s\n" "fzf -kak-cmd %{ctags-search} -items-cmd %{$cmd | awk '!a[\$0]++'} -fzf-args %{--expect $kak_opt_fzf_window_map $additional_flags}"
}} }}
§ §

View file

@ -53,14 +53,14 @@ define-command -hidden fzf-file %{ evaluate-commands %sh{
cmd="$cmd 2>/dev/null" cmd="$cmd 2>/dev/null"
message="Open single or multiple files. message="Open single or multiple files.
<ret>: open file in new buffer. <ret>: open file in new buffer.
<c-w>: open file in new terminal" $kak_opt_fzf_window_map: open file in new terminal"
[ ! -z "${kak_client_env_TMUX}" ] && tmux_keybindings=" [ ! -z "${kak_client_env_TMUX}" ] && tmux_keybindings="
<c-s>: open file in horizontal split $kak_opt_fzf_horizontal_map: open file in horizontal split
<c-v>: open file in vertical split" $kak_opt_fzf_vertical_map: open file in vertical split"
printf "%s\n" "info -title 'fzf file' '$message$tmux_keybindings'" printf "%s\n" "info -title 'fzf file' '$message$tmux_keybindings'"
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect ctrl-v --expect ctrl-s" [ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect $kak_opt_fzf_vertical_map --expect $kak_opt_fzf_horizontal_map"
printf "%s\n" "fzf -preview -kak-cmd %{edit -existing} -items-cmd %{$cmd} -fzf-args %{-m --expect ctrl-w $additional_flags}" printf "%s\n" "fzf -preview -kak-cmd %{edit -existing} -items-cmd %{$cmd} -fzf-args %{-m --expect $kak_opt_fzf_window_map $additional_flags}"
}} }}
§ §

View file

@ -47,11 +47,11 @@ bzr status"
vcs=$(printf "%s\n" "$cmd" | awk '{print $1}') vcs=$(printf "%s\n" "$cmd" | awk '{print $1}')
title="fzf $vcs" title="fzf $vcs"
[ ! -z "${kak_client_env_TMUX}" ] && additional_keybindings=" [ ! -z "${kak_client_env_TMUX}" ] && additional_keybindings="
<c-s>: open file in horizontal split $kak_opt_fzf_horizontal_map: open file in horizontal split
<c-v>: open file in vertical split" $kak_opt_fzf_vertical_map: open file in vertical split"
message="Open single or multiple files from git tree. message="Open single or multiple files from git tree.
<ret>: open file in new buffer. <ret>: open file in new buffer.
<c-w>: open file in new terminal $additional_keybindings" $kak_opt_fzf_window_map: open file in new terminal $additional_keybindings"
printf "%s\n" "info -title %{$title} %{$message}" printf "%s\n" "info -title %{$title} %{$message}"
printf "%s\n" "fzf-$vcs" printf "%s\n" "fzf-$vcs"
exit exit

View file

@ -33,14 +33,14 @@ define-command -hidden fzf-sk-grep %{ evaluate-commands %sh{
title="skim interactive grep" title="skim interactive grep"
message="Interactively grep pattern from current directory message="Interactively grep pattern from current directory
<ret>: open search result in new buffer. <ret>: open search result in new buffer.
<c-w>: open search result in new terminal" $kak_opt_fzf_window_map: open search result in new terminal"
[ ! -z "${kak_client_env_TMUX}" ] && tmux_keybindings=" [ ! -z "${kak_client_env_TMUX}" ] && tmux_keybindings="
<c-s>: open search result in horizontal split $kak_opt_fzf_horizontal_map: open search result in horizontal split
<c-v>: open search result in vertical split" $kak_opt_fzf_vertical_map: open search result in vertical split"
printf "%s\n" "info -title '${title}' '${message}${tmux_keybindings}'" printf "%s\n" "info -title '${title}' '${message}${tmux_keybindings}'"
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect ctrl-v --expect ctrl-s" [ ! -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 %{fzf-sk-grep-handler} -fzf-impl %{sk -m -i -c '$kak_opt_fzf_sk_grep_command {}'} -fzf-args %{--expect ctrl-w $additional_flags} -multiple-cmd %{fzf-sk-populate-grep} -post-action %{buffer %opt{fzf_sk_first_file}}" printf "%s\n" "fzf -kak-cmd %{fzf-sk-grep-handler} -fzf-impl %{sk -m -i -c '$kak_opt_fzf_sk_grep_command {}'} -fzf-args %{--expect $kak_opt_fzf_window_map $additional_flags} -multiple-cmd %{fzf-sk-populate-grep} -post-action %{buffer %opt{fzf_sk_first_file}}"
}} }}
define-command -hidden fzf-sk-grep-handler -params 1 %{ define-command -hidden fzf-sk-grep-handler -params 1 %{