From 55681388105daaebc516108447abffb750306bae Mon Sep 17 00:00:00 2001 From: Andrey Orst Date: Fri, 12 Oct 2018 13:52:03 +0300 Subject: [PATCH 1/7] fix terminal size calculation --- rc/fzf.kak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rc/fzf.kak b/rc/fzf.kak index 451e5d8..acffb8a 100644 --- a/rc/fzf.kak +++ b/rc/fzf.kak @@ -324,7 +324,7 @@ define-command -hidden fzf -params 2..3 %{ evaluate-commands %sh{ if [ ! -z "${kak_client_env_TMUX}" ]; then preview_pos='pos=right:50%;' else - preview_pos='sleep 0.1; if [ $(tput cols) -gt $(expr $(tput lines) * 2) ]; then pos=right:50%; else pos=top:60%; fi;' + preview_pos='sleep 0.1; if [ $(tput cols) -gt $(expr $(tput lines) \* 2) ]; then pos=right:50%; else pos=top:60%; fi;' fi additional_flags="--preview '($highlighter || cat {}) 2>/dev/null | head -n $kak_opt_fzf_preview_lines' --preview-window=\$pos $additional_flags" fi From d3151b947d1d258e20647ade77a98d446a0491d0 Mon Sep 17 00:00:00 2001 From: Andrey Orst Date: Fri, 12 Oct 2018 13:57:12 +0300 Subject: [PATCH 2/7] workaround terminal width and height calculation problem --- rc/fzf.kak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rc/fzf.kak b/rc/fzf.kak index acffb8a..a038c94 100644 --- a/rc/fzf.kak +++ b/rc/fzf.kak @@ -326,7 +326,7 @@ define-command -hidden fzf -params 2..3 %{ evaluate-commands %sh{ else preview_pos='sleep 0.1; if [ $(tput cols) -gt $(expr $(tput lines) \* 2) ]; then pos=right:50%; else pos=top:60%; fi;' 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:-right:50%} $additional_flags" fi if [ ! -z "${kak_client_env_TMUX}" ]; then From 9aa4049375261763b8164e040de8163e678001da Mon Sep 17 00:00:00 2001 From: Andrey Orst Date: Fri, 12 Oct 2018 14:35:14 +0300 Subject: [PATCH 3/7] remove sed as we don't pass variable from other function anymore --- rc/fzf.kak | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rc/fzf.kak b/rc/fzf.kak index a038c94..4e555fd 100644 --- a/rc/fzf.kak +++ b/rc/fzf.kak @@ -324,16 +324,16 @@ define-command -hidden fzf -params 2..3 %{ evaluate-commands %sh{ if [ ! -z "${kak_client_env_TMUX}" ]; then preview_pos='pos=right:50%;' else - preview_pos='sleep 0.1; if [ $(tput cols) -gt $(expr $(tput lines) \* 2) ]; then pos=right:50%; else pos=top:60%; fi;' + preview_pos='sleep 0.1; if [ \$(tput cols) -gt \$(expr \$(tput lines) \* 2) ]; then pos=right:50%; else pos=top:60%; fi;' fi - additional_flags="--preview '($highlighter || cat {}) 2>/dev/null | head -n $kak_opt_fzf_preview_lines' --preview-window=\${pos:-right:50%} $additional_flags" + additional_flags="--preview '($highlighter || cat {}) 2>/dev/null | head -n $kak_opt_fzf_preview_lines' --preview-window=\\\$pos $additional_flags" fi if [ ! -z "${kak_client_env_TMUX}" ]; then cmd="$preview_pos $items_command | fzf-tmux -d $kak_opt_fzf_tmux_height --expect ctrl-q $additional_flags > $tmp" elif [ ! -z "${kak_opt_termcmd}" ]; then path=$(pwd) - additional_flags=$(echo $additional_flags | sed "s:\$pos:\\\\\$pos:") + # additional_flags=$(echo $additional_flags | sed "s:\$pos:\\\\\$pos:") cmd="$kak_opt_termcmd \"sh -c \\\"cd $path && $preview_pos $items_command | fzf --expect ctrl-q $additional_flags > $tmp\\\"\"" else echo "fail termcmd option is not set" From d4381aaa4721c80a75615f5f032f8e40b14653fb Mon Sep 17 00:00:00 2001 From: Andrey Orst Date: Fri, 12 Oct 2018 15:09:06 +0300 Subject: [PATCH 4/7] workaround fish shell variable --- rc/fzf.kak | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/rc/fzf.kak b/rc/fzf.kak index 4e555fd..f314c1b 100644 --- a/rc/fzf.kak +++ b/rc/fzf.kak @@ -333,8 +333,7 @@ define-command -hidden fzf -params 2..3 %{ evaluate-commands %sh{ cmd="$preview_pos $items_command | fzf-tmux -d $kak_opt_fzf_tmux_height --expect ctrl-q $additional_flags > $tmp" elif [ ! -z "${kak_opt_termcmd}" ]; then path=$(pwd) - # additional_flags=$(echo $additional_flags | sed "s:\$pos:\\\\\$pos:") - cmd="$kak_opt_termcmd \"sh -c \\\"cd $path && $preview_pos $items_command | fzf --expect ctrl-q $additional_flags > $tmp\\\"\"" + cmd="$kak_opt_termcmd \"sh -c \\\"sh=$(which sh); SHELL=\\\$sh; export SHELL; cd $path && $preview_pos $items_command | fzf --expect ctrl-q $additional_flags > $tmp\\\"\"" else echo "fail termcmd option is not set" exit From 6b0389f846d683bbd0fc0947eebb2646b002479b Mon Sep 17 00:00:00 2001 From: Andrey Orst Date: Fri, 12 Oct 2018 15:52:11 +0300 Subject: [PATCH 5/7] retrieve sed --- rc/fzf.kak | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rc/fzf.kak b/rc/fzf.kak index f314c1b..b108a6b 100644 --- a/rc/fzf.kak +++ b/rc/fzf.kak @@ -326,13 +326,14 @@ define-command -hidden fzf -params 2..3 %{ evaluate-commands %sh{ else preview_pos='sleep 0.1; if [ \$(tput cols) -gt \$(expr \$(tput lines) \* 2) ]; then pos=right:50%; else pos=top:60%; fi;' 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 if [ ! -z "${kak_client_env_TMUX}" ]; then cmd="$preview_pos $items_command | fzf-tmux -d $kak_opt_fzf_tmux_height --expect ctrl-q $additional_flags > $tmp" elif [ ! -z "${kak_opt_termcmd}" ]; then path=$(pwd) + additional_flags=$(echo $additional_flags | sed "s:\$pos:\\\\\$pos:") cmd="$kak_opt_termcmd \"sh -c \\\"sh=$(which sh); SHELL=\\\$sh; export SHELL; cd $path && $preview_pos $items_command | fzf --expect ctrl-q $additional_flags > $tmp\\\"\"" else echo "fail termcmd option is not set" From b0697fbd53fd27f2075fc8eb96f0bc5454956917 Mon Sep 17 00:00:00 2001 From: Andrey Orst Date: Fri, 12 Oct 2018 17:35:18 +0300 Subject: [PATCH 6/7] fix escaping of preview position --- rc/fzf.kak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rc/fzf.kak b/rc/fzf.kak index b108a6b..ff46f6b 100644 --- a/rc/fzf.kak +++ b/rc/fzf.kak @@ -333,7 +333,7 @@ define-command -hidden fzf -params 2..3 %{ evaluate-commands %sh{ cmd="$preview_pos $items_command | fzf-tmux -d $kak_opt_fzf_tmux_height --expect ctrl-q $additional_flags > $tmp" elif [ ! -z "${kak_opt_termcmd}" ]; then path=$(pwd) - additional_flags=$(echo $additional_flags | sed "s:\$pos:\\\\\$pos:") + additional_flags=$(echo $additional_flags | sed 's:\$pos:\\\\\\\$pos:') cmd="$kak_opt_termcmd \"sh -c \\\"sh=$(which sh); SHELL=\\\$sh; export SHELL; cd $path && $preview_pos $items_command | fzf --expect ctrl-q $additional_flags > $tmp\\\"\"" else echo "fail termcmd option is not set" From 09bdfbb623a7b7aba5e7c652d18e15170ad01f9a Mon Sep 17 00:00:00 2001 From: Andrey Orst Date: Fri, 12 Oct 2018 17:39:00 +0300 Subject: [PATCH 7/7] command -v is more portable than which --- rc/fzf.kak | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rc/fzf.kak b/rc/fzf.kak index ff46f6b..6061a4a 100644 --- a/rc/fzf.kak +++ b/rc/fzf.kak @@ -334,7 +334,7 @@ define-command -hidden fzf -params 2..3 %{ evaluate-commands %sh{ elif [ ! -z "${kak_opt_termcmd}" ]; then path=$(pwd) additional_flags=$(echo $additional_flags | sed 's:\$pos:\\\\\\\$pos:') - cmd="$kak_opt_termcmd \"sh -c \\\"sh=$(which sh); SHELL=\\\$sh; export SHELL; cd $path && $preview_pos $items_command | fzf --expect ctrl-q $additional_flags > $tmp\\\"\"" + cmd="$kak_opt_termcmd \"sh -c \\\"sh=$(command -v sh); SHELL=\\\$sh; export SHELL; cd $path && $preview_pos $items_command | fzf --expect ctrl-q $additional_flags > $tmp\\\"\"" else echo "fail termcmd option is not set" exit