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に入れることです。そこには行かないでしょう。別のスクリプトファイルまたは関数にあります。

関連情報