출력을 캡처할 때 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--bindexecute

답변1

--bind작업이 포함된 모든 옵션은 execute무시됩니다.

난 그렇게 생각하지 않아. 그것은 내 테스트에서 작동하기 시작했습니다 less. 리디렉션된 stdout을 상속하기 때문에 예상한 것과 다르게 동작합니다 fzf. less표준 입력이 다른 것인 경우에도 터미널에서 키 입력을 읽습니다(따라서 입력을 리디렉션하는 것은 문제가 되지 않습니다). 그러나 표준 출력으로 인쇄합니다(따라서 출력을 리디렉션하는 것은 문제입니다). less인쇄된 내용을 확인하고 여전히 출력을 리디렉션 하려면 표준 출력 으로 명시 fzfless으로 지정하세요 ./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

관련 정보