[vim] Native --tmux fix for Neovim

This commit is contained in:
Junegunn Choi 2024-05-28 19:25:28 +09:00
parent 32eb32ee5e
commit 782de139c8
No known key found for this signature in database
GPG Key ID: 254BC280FEF9C627
3 changed files with 10 additions and 3 deletions

View File

@ -592,7 +592,7 @@ function! s:fzf_tmux(dict)
end
" Using native --tmux option
let in = (has_key(a:dict, 'source') ? '' : ' < /dev/tty')
let in = (has_key(a:dict, 'source') ? '' : ' --force-tty-in')
return printf('%s --tmux %s%s', fzf#shellescape(fzf#exec()), size, in)
endfunction

View File

@ -396,6 +396,7 @@ type Options struct {
Output chan string
NoWinpty bool
Tmux *tmuxOptions
ForceTtyIn bool
ProxyScript string
Bash bool
Zsh bool
@ -1949,6 +1950,12 @@ func parseOptions(opts *Options, allArgs []string) error {
}
case "--no-tmux":
opts.Tmux = nil
case "--force-tty-in":
// NOTE: We need this because `system('fzf --tmux < /dev/tty')` doesn't
// work on Neovim. Same as '-' option of fzf-tmux.
opts.ForceTtyIn = true
case "--no-force-tty-in":
opts.ForceTtyIn = false
case "--proxy-script":
if opts.ProxyScript, err = nextString(allArgs, &i, ""); err != nil {
return err

View File

@ -59,8 +59,8 @@ func runProxy(commandPrefix string, cmdBuilder func(temp string) *exec.Cmd, opts
}()
var command string
commandPrefix += ` --proxy-script "$0"`
if opts.Input == nil && util.IsTty(os.Stdin) {
commandPrefix += ` --no-force-tty-in --proxy-script "$0"`
if opts.Input == nil && (opts.ForceTtyIn || util.IsTty(os.Stdin)) {
command = fmt.Sprintf(`%s > %q`, commandPrefix, output)
} else {
input, err := fifo("proxy-input")