fzf 플러그인이 설치된 ohmyz.sh에서 제대로 작동하도록 고급 FZF_DEFAULT_COMMAND 환경 변수를 올바르게 설정하려면 어떻게 해야 합니까?

fzf 플러그인이 설치된 ohmyz.sh에서 제대로 작동하도록 고급 FZF_DEFAULT_COMMAND 환경 변수를 올바르게 설정하려면 어떻게 해야 합니까?

저는 z shell과 ohmyz.sh를 처음 사용합니다.

fzf를 rg와 통합하기 위해 zshrc에 다음이 있습니다. 이것이 fzf readme에 정확히 나타나는 방식입니다:

FZF_BASE=/usr/local/bin
DISABLE_FZF_AUTO_COMPLETION="true"
DISABLE_FZF_KEY_BINDINGS="true"
INITIAL_QUERY=""
RG_PREFIX="rg --column --line-number --no-heading --color=always --smart-case "
FZF_DEFAULT_COMMAND="$RG_PREFIX '$INITIAL_QUERY'" \
  fzf --bind "change:reload:$RG_PREFIX {q} || true" \
      --ansi --disabled --query "$INITIAL_QUERY" \
      --height=50% --layout=reverse

어느 정도 작동하지만 이상하고 깨진 동작이 나타납니다.

  1. 이상한 동작은 zshell을 다시 로드할 때 키를 누르거나 명령을 입력하지 않고도 fzf가 즉시 시작된다는 것입니다. 잘 작동하지만 그 외에는.

  2. 손상된 동작은 수동으로 입력하면 fzf검색이 시작되지만 FZF_DEFAULT_COMMAND가 플러그인이 사용하는 것으로 설정된다는 것입니다.

export이 동작을 앞쪽으로 두드려 수정하려고 했지만 FZF_DEFAULT_COMMANDzsh를 다시 로드하면 오류가 발생합니다.

/Users/me/.zshrc:export:313: not valid in this context: --bind

다음으로 ohmyzsh 플러그인을 끄고 코드를 다음과 같이 수정했습니다.

FZF_DEFAULT_COMMAND="$RG_PREFIX '$INITIAL_QUERY'" \
  fzf --bind "change:reload:$RG_PREFIX {q} || true" \
      --ansi --disabled --query "$INITIAL_QUERY" \
      --height=50% --layout=reverse
export FZF_DEFAULT_COMMAND

이것은 작동하지만 zsh를 로드하면 fzf가 시작됩니다. 또한 검색 형식은 ANSI 문자로 인해 손상되고 보기 흉합니다.

답변1

좋아요, 문제는 이 코드를 .zshrc에 넣는 것입니다. 거기에는 가지 않을 것입니다. 별도의 스크립트 파일이나 함수에 있습니다.

관련 정보