diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2020-03-07 16:26:53 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2020-03-07 16:26:53 +0900 |
commit | baf882ace741e4d279b6a6d2da467e00f94642f5 (patch) | |
tree | 26744d3d948918de01df871535653088aeae1abe | |
parent | ba82f0bef99299a2c8a7a9cacde55c28568c9c3b (diff) |
[completion] Use file redirection instead of pipe
This change allows the completion system of bash and zsh to return
before the input process completes.
Related #1887
-rw-r--r-- | shell/completion.bash | 2 | ||||
-rw-r--r-- | shell/completion.zsh | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/shell/completion.bash b/shell/completion.bash index b953cc8a..bd94c51a 100644 --- a/shell/completion.bash +++ b/shell/completion.bash @@ -200,7 +200,7 @@ _fzf_complete() { if [[ "$cur" == *"$trigger" ]]; then cur=${cur:0:${#cur}-${#trigger}} - selected=$(cat | FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse $FZF_DEFAULT_OPTS $FZF_COMPLETION_OPTS $1" __fzf_comprun "$2" -q "$cur" | $post | tr '\n' ' ') + selected=$(FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse $FZF_DEFAULT_OPTS $FZF_COMPLETION_OPTS $1" __fzf_comprun "$2" -q "$cur" | $post | tr '\n' ' ') selected=${selected% } # Strip trailing space not to repeat "-o nospace" if [ -n "$selected" ]; then COMPREPLY=("$selected") diff --git a/shell/completion.zsh b/shell/completion.zsh index d5fccad7..95f6d685 100644 --- a/shell/completion.zsh +++ b/shell/completion.zsh @@ -116,7 +116,7 @@ _fzf_complete() { type $post > /dev/null 2>&1 || post=cat _fzf_feed_fifo "$fifo" - matches=$(cat "$fifo" | FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse $FZF_DEFAULT_OPTS $FZF_COMPLETION_OPTS" __fzf_comprun "$cmd" ${(Q)${(Z+n+)fzf_opts}} -q "${(Q)prefix}" | $post | tr '\n' ' ') + matches=$(FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse $FZF_DEFAULT_OPTS $FZF_COMPLETION_OPTS" __fzf_comprun "$cmd" ${(Q)${(Z+n+)fzf_opts}} -q "${(Q)prefix}" < "$fifo" | $post | tr '\n' ' ') if [ -n "$matches" ]; then LBUFFER="$lbuf$matches" fi |