次のコマンドは期待どおりに機能します。
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を継承するため、期待どおりに動作しますfzf
。less
標準入力が異なるものであっても、端末からキーストロークを読みます(したがって、入力をリダイレクトすることは問題になりません)。ただし、標準出力に印刷します(したがって出力をリダイレクトするのは問題です)。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