捕获其输出时 fzf 行为发生变化

捕获其输出时 fzf 行为发生变化

以下命令按预期工作正常:

find ~ -type f | fzf -m --preview-window=up:30% --header "ctrl-f: selected all and exit" --bind "enter:execute(less {})" --bind "ctrl-f:select-all+accept"

但是,如果我将>outfile.txt或添加| xclip到该命令的末尾,则所有--bind包含execute操作的选项都将被忽略。这是已知错误吗?有办法解决吗?

答案1

所有--bind包含execute操作的选项都将被忽略

我不这么认为。在我的测试中less确实开始了。它的行为与您期望的不同,因为它继承了重定向的 stdout fzfless从终端读取击键,即使其标准输入是其他内容(因此重定向输入不是问题);但它打印到它的标准输出(所以重定向输出是一个问题,问题)。如果您想查看less打印内容并仍然重定向输出fzf,请less明确指定用作/dev/tty其标准输出:

find ~ -type f \
| fzf -m --preview-window=up:30% --header "ctrl-f: selected all and exit" \
--bind "enter:execute(less {} >/dev/tty)" \
--bind "ctrl-f:select-all+accept" >outfile.txt

相关内容