diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/fzf-tmux | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/bin/fzf-tmux b/bin/fzf-tmux index c2194804..fe9f8ade 100755 --- a/bin/fzf-tmux +++ b/bin/fzf-tmux @@ -100,13 +100,6 @@ cleanup() { } trap cleanup EXIT SIGINT SIGTERM -# Build arguments to fzf -str="" -for arg in "${args[@]}"; do - str="$str \"${arg//\"/\\\"}\"" -done -cat <<< "$str" > $argsf - fail() { >&2 echo "$1" exit 1 @@ -120,13 +113,22 @@ envs="" mkfifo $fifo2 mkfifo $fifo3 + +# Build arguments to fzf +opts="" +for arg in "${args[@]}"; do + opts="$opts \"${arg//\"/\\\"}\"" +done + if [ -n "$term" -o -t 0 ]; then + cat <<< "$fzf $opts > $fifo2; echo \$? > $fifo3 $close" > $argsf tmux set-window-option -q synchronize-panes off \;\ - split-window $opt "cd $(printf %q "$PWD");$envs"' bash -c "'$fzf' $(cat '$argsf') > '$fifo2'; echo \$? > '$fifo3' '"$close"'"' $swap + split-window $opt "cd $(printf %q "$PWD");$envs bash $argsf" $swap else mkfifo $fifo1 + cat <<< "$fzf $opts < $fifo1 > $fifo2; echo \$? > $fifo3 $close" > $argsf tmux set-window-option -q synchronize-panes off \;\ - split-window $opt "$envs"' bash -c "'$fzf' $(cat '$argsf') < '$fifo1' > '$fifo2'; echo \$? > '$fifo3' '"$close"'"' $swap + split-window $opt "$envs bash $argsf" $swap cat <&0 > $fifo1 & fi cat $fifo2 |