特別な感謝:
Warp は、AI が組み込まれた最新の Rust ベースのターミナルで、ユーザーとチームが優れたソフトウェアをより迅速に構築できるようにします。
詳細については、warp.dev にアクセスしてください。
fzf は、汎用のコマンドライン ファジー ファインダーです。
これは、あらゆる種類のリストに対応する対話型フィルター プログラムです。ファイル、コマンド履歴、プロセス、ホスト名、ブックマーク、git コミットなど。「あいまい」一致アルゴリズムが実装されているため、省略された文字を含むパターンをすばやく入力しても、必要な結果を得ることができます。
ポータブル— 簡単にインストールできるように単一のバイナリとして配布されます
驚くほど高速— 高度に最適化されたコードが数百万のアイテムを瞬時に処理します
非常に多用途— イベントアクションバインディングメカニズムを介して完全にカスタマイズ可能
バッテリーが付属— bash、zsh、fish、Vim、および Neovim との統合が含まれます
私が fzf を改善し続けることを可能にしてくださったこのプロジェクトのスポンサーの皆様に感謝したいと思います。
このプロジェクトのスポンサーになりたい場合は、https://github.com/sponsors/junegunn にアクセスしてください。
インストール
自作の使用
Linuxパッケージ
Windows パッケージ
gitの使用
バイナリリリース
シェル統合のセットアップ
Vim/Neovim プラグイン
fzf のアップグレード
fzfの構築
使用法
--height
モード
--tmux
モード
ファインダーを使う
表示モード
検索構文
環境変数
オプション
デモ
例
コマンドラインのキーバインド
bash と zsh のあいまい補完
ファイルとディレクトリ
プロセスID
ホスト名
環境変数/エイリアス
設定
サポートされているコマンド
カスタムファジー補完
Vim プラグイン
高度なトピック
1. CTRL-R を押してプロセスのリストを更新します。
2. CTRL-D または CTRL-F を押してソースを切り替えます。
3. インタラクティブな ripgrep 統合
パフォーマンス
外部プログラムの実行
別のプロセスに変わる
候補リストをリロードする
プレビューウィンドウ
画像のプレビュー
ヒント
.gitignore
の尊重
魚の殻
fzf テーマ プレイグラウンド
関連プロジェクト
ライセンス
Homebrew (macOS または Linux 上) を使用して fzf をインストールできます。
醸造インストールfzf
重要
シェルの統合 (キー バインドとファジー補完) を設定するには、以下の手順を参照してください。
fzf は MacPorts 経由でも利用できます: sudo port install fzf
パッケージマネージャー | Linuxディストリビューション | 指示 |
---|---|---|
APK | アルパイン・リナックス | sudo apk add fzf |
APT | Debian 9+/Ubuntu 19.10+ | sudo apt install fzf |
コンダ | conda install -c conda-forge fzf | |
DNF | フェドーラ | sudo dnf install fzf |
ニックス | NixOSなど | nix-env -iA nixpkgs.fzf |
パックマン | Arch Linux | sudo pacman -S fzf |
パッケージ | FreeBSD | pkg install fzf |
パッケージング | NetBSD | pkgin install fzf |
pkg_add | OpenBSD | pkg_add fzf |
ポーテージ | Gentoo | emerge --ask app-shells/fzf |
スパック | spack install fzf | |
XBPS | ボイド・リナックス | sudo xbps-install -S fzf |
ジッパー | openSUSE | sudo zypper install fzf |
重要
シェルの統合 (キー バインドとファジー補完) を設定するには、以下の手順を参照してください。
Windows では、fzf は Chocolatey、Scoop、Winget、および MSYS2 経由で利用できます。
パッケージマネージャー | 指示 |
---|---|
チョコレートティ | choco install fzf |
スクープ | scoop install fzf |
ウィンゲット | winget install fzf |
MSYS2 (パックマン) | pacman -S $MINGW_PACKAGE_PREFIX-fzf |
あるいは、このリポジトリを任意のディレクトリに「git clone」して、インストール スクリプトを実行することもできます。
git clone -- Depth 1 https://github.com/junegunn/fzf.git ~/.fzf~/.fzf/install
インストール スクリプトは、 $PATH
変更し、シェル統合をセットアップするための行をシェル構成ファイルに追加します。
公式 fzf バイナリはリリース ページからダウンロードできます。
https://github.com/junegunn/fzf/releases
シェル構成ファイルに次の行を追加します。
バッシュ
# fzf キー バインディングとファジー補完を設定しますeval "$(fzf --bash)"
zsh
# fzf キー バインディングとファジー補完を設定しますsource <(fzf --zsh)
魚
# fzf キーバインドを設定しますfzf --fish |ソース
注記
--bash
、 --zsh
、および--fish
オプションは、fzf 0.48.0 以降でのみ使用できます。古いバージョンの fzf を使用している場合、またはより詳細な制御が必要な場合は、/shell ディレクトリ内の個別のスクリプト ファイルを参照できます。ファイルの場所は、使用するパッケージ マネージャーによって異なる場合があります。詳細については、パッケージのドキュメントを参照してください。 (例: apt show fzf
)
ヒント
スクリプトを取得するときにFZF_CTRL_T_COMMAND
またはFZF_ALT_C_COMMAND
空の文字列に設定することで、CTRL-T または ALT-C バインディングを無効にできます。たとえば、ALT-C バインディングを無効にするには:
bash: FZF_ALT_C_COMMAND= eval "$(fzf --bash)"
zsh: FZF_ALT_C_COMMAND= source <(fzf --zsh)
魚: fzf --fish | FZF_ALT_C_COMMAND= source
スクリプトをソースした後に変数を設定しても効果はありません。
vim-plug を使用する場合は、これを Vim 構成ファイルに追加します。
プラグ 'junegunn/fzf', { 'do': { -> fzf#install() } } 「junegunn/fzf.vim」をプラグインします
junegunn/fzf
基本的なライブラリ関数を提供します
fzf#install()
最新のバイナリがあることを確認します
junegunn/fzf.vim
は、さまざまな便利なコマンドを提供する別のプロジェクトです。
Vim 統合の詳細については、README-VIM.md を参照してください。
ヒント
Neovim を使用していて、Lua ベースのプラグインを好む場合は、fzf-lua をチェックしてください。
fzf は活発に開発されているため、時々アップグレードすることをお勧めします。使用するインストール方法に応じて、以下の手順に従ってください。
git: cd ~/.fzf && git pull && ./install
醸造: brew update; brew upgrade fzf
macports: sudo port upgrade fzf
Chocolatey: choco upgrade fzf
vim-plug: :PlugUpdate fzf
BUILD.mdを参照してください。
fzf は対話型ファインダーを起動し、STDIN からリストを読み取り、選択した項目を STDOUT に書き込みます。
find * -type f | fzf > 選択済み
STDIN パイプがない場合、fzf は現在のディレクトリの下のファイル システムを走査してファイルのリストを取得します。
vim $(fzf)
注記
デフォルトの動作をオーバーライドできます
$FZF_DEFAULT_COMMAND
必要なリストを生成するコマンドに設定することによって
または、 $FZF_DEFAULT_OPTS
で--walker
、 --walker-root
、および--walker-skip
オプションを設定します。
警告
より堅牢な解決策はxargs
使用することですが、理解しやすいため上記を提示しました。
fzf --print0 | xargs -0 -o vim
ヒント
fzf には、それ自体を別のプロセスに変える機能もあります。
fzf --bind 'enter:become(vim {})'
詳細については、「別のプロセスへの変換」を参照してください。
CTRL-K
/ CTRL-J
(またはCTRL-P
/ CTRL-N
) でカーソルを上下に移動します
Enter
キーを押して項目を選択し、 CTRL-C
/ CTRL-G
/ ESC
押して終了します。
複数選択モード ( -m
) では、 TAB
およびShift-TAB
複数の項目をマークします
Emacs スタイルのキーバインディング
マウス: スクロール、クリック、ダブルクリック。複数選択モードで Shift キーを押しながらクリックし、Shift キーを押しながらスクロールする
fzf はデフォルトで全画面モードで実行されますが、他の表示モードもあります。
--height
モード--height HEIGHT[%]
を指定すると、 fzf はカーソルの下から指定された高さで開始します。
fzf --高さ 40%
reverse
レイアウトと--border
このオプションとよく合います。
fzf --height 40% --layout reverse --border
高さの先頭に~
付けることで、最大高さを設定します。
# listseq を表示するのに必要な行数はできるだけ少なくなります 3 | fzf --高さ ~100% シーケンス 3000 | fzf --高さ ~100%
高さの値には負の数を指定できます。
# 画面の高さ - 3fzf --height -3
--tmux
モード--tmux
オプションを使用すると、fzf が tmux ポップアップで起動します。
# --tmux [center|top|bottom|left|right][,SIZE[%]][,SIZE[%]]fzf --tmux center #中央、幅と高さの 50%fzf --tmux 80% #中央、幅と高さ 80%fzf --tmux 100%,50% # 中央、幅 100%、高さ 50%fzf --tmux left,40% # 左、 40% widthfzf --tmux left,40%,90% # 左、幅 40%、高さ 90%fzf --tmux top,40% # 上、高さ 40%fzf --tmuxbottom,80%,40% # 下、80高さ %、高さ 40%
--tmux を使用していない場合、 --tmux
黙って無視されます。
注記
ポップアップをサポートしていない古いバージョンの tmux を使用している場合、または通常の tmux ペインで fzf を開きたい場合は、fzf-tmux スクリプトを確認してください。
ヒント
これらのオプションを$FZF_DEFAULT_OPTS
に追加すると、デフォルトで適用されるようになります。例えば、
# tmux 上の場合は tmux ポップアップで開きます。それ以外の場合は --height modeexport FZF_DEFAULT_OPTS='--height 40% --tmuxbottom,40% --layout reverse --border top' を使用します
特に指定しない限り、fzf は「拡張検索モード」で開始され、スペースで区切って複数の検索語を入力できます。例: ^music .mp3$ sbtrkt !fire
トークン | マッチタイプ | 説明 |
---|---|---|
sbtrkt | ファジーマッチ | sbtrkt に一致するアイテム |
'wild | 完全一致 (引用符付き) | wild が含まれるアイテム |
'wild' | 完全境界一致 (両端を引用符付き) | 単語境界にwild を含む項目 |
^music | プレフィックス完全一致 | music から始まるアイテム |
.mp3$ | サフィックス完全一致 | .mp3 で終わる項目 |
!fire | 逆完全一致 | fire 含まないもの |
!^music | 逆プレフィックス完全一致 | music で始まらないアイテム |
!.mp3$ | 逆サフィックス完全一致 | .mp3 で終わらないアイテム |
あいまい一致を好まず、すべての単語を「引用」したくない場合は、 -e
または--exact
オプションを使用して fzf を開始します。 --exact
が設定されている場合、 '
-prefix が用語の「引用符を解除」することに注意してください。
単一のバー文字項は OR 演算子として機能します。たとえば、次のクエリは、 core
で始まりgo
、 rb
、またはpy
で終わるエントリと一致します。
^core go$ | rb$ | py$
FZF_DEFAULT_COMMAND
入力が tty の場合に使用するデフォルトのコマンド
たとえば、 export FZF_DEFAULT_COMMAND='fd --type f'
FZF_DEFAULT_OPTS
デフォルトのオプション
例: export FZF_DEFAULT_OPTS="--layout=reverse --inline-info"
FZF_DEFAULT_OPTS_FILE
ファイル内のデフォルト オプションを管理したい場合は、ファイルの場所を指すようにこの変数を設定します。
例: export FZF_DEFAULT_OPTS_FILE=~/.fzfrc
警告
FZF_DEFAULT_COMMAND
、要件が若干異なるため、シェル統合では使用されません。
CTRL-T
$FZF_CTRL_T_COMMAND
を実行してファイルとディレクトリのリストを取得します
ALT-C
$FZF_ALT_C_COMMAND
を実行してディレクトリのリストを取得します
vim ~/**
最初の引数としてプレフィックス ( ~/
) を指定してfzf_compgen_path()
を実行します
cd foo**
最初の引数としてプレフィックス ( foo
) を指定してfzf_compgen_dir()
を実行します。
使用可能なオプションについては、このドキュメントの後半で説明します。
オプションの完全なリストについては、マニュアル ページ ( man fzf
) を参照してください。
ビデオを見て学習している場合は、@samoshkin によるこのスクリーンキャストをチェックしてfzf
機能を調べてください。
例の Wiki ページ
免責事項: このページの例はコミュニティによって維持されており、完全にはテストされていません
高度な fzf の例
シェル統合を設定すると、bash、zsh、fish で以下のキーバインディングが使用できるようになります。
CTRL-T
- 選択したファイルとディレクトリをコマンドラインに貼り付けます
FZF_CTRL_T_COMMAND
必要なリストを生成するカスタム コマンドに設定することで、動作をオーバーライドできます。
または、 FZF_CTRL_T_OPTS
で--walker*
オプションを設定できます
リストは--walker file,dir,follow,hidden
オプションを使用して生成されます
追加のオプションを fzf に渡すようにFZF_CTRL_T_OPTS
を設定します。
# Bat を使用してファイルの内容をプレビューする (https://github.com/sharkdp/bat)export FZF_CTRL_T_OPTS=" --walker-skip .git,node_modules,target --preview 'bat -n --color=always {}' - -bind 'ctrl-/:change-preview-window(down|hidden|)'"
スクリプトを取得するときにFZF_CTRL_T_COMMAND
空の文字列に設定することで無効にできます
CTRL-R
- 履歴から選択したコマンドをコマンドラインに貼り付けます
コマンドを時系列で表示したい場合は、 CTRL-R
もう一度押すと、関連性による並べ替えが切り替わります。
CTRL-/
またはALT-/
押して行の折り返しを切り替えます
追加オプションを fzf に渡すようにFZF_CTRL_R_OPTS
を設定します。
# CTRL-Y を使用して、pbcopyexport FZF_CTRL_R_OPTS= --bind 'ctrl-y:execute-silent(echo -n {2..} | pbcopy)+abort' --color header:italic --header を使用してコマンドをクリップボードにコピーします'CTRL-Y を押してコマンドをクリップボードにコピーしてください'"
ALT-C
- 選択したディレクトリに移動します
または、 FZF_ALT_C_OPTS
で--walker-*
オプションを設定できます
リストは--walker dir,follow,hidden
オプションを使用して生成されます
FZF_ALT_C_COMMAND
を設定してデフォルトのコマンドをオーバーライドします。
追加オプションを fzf に渡すようにFZF_ALT_C_OPTS
を設定します。
# プレビュー ウィンドウにツリー構造を表示export FZF_ALT_C_OPTS=" --walker-skip .git,node_modules,target --preview 'tree -C {}'"
スクリプトを取得するときにFZF_ALT_C_COMMAND
空の文字列に設定することで無効にできます
これらのバインディングの表示モードはFZF_{CTRL_T,CTRL_R,ALT_C}_OPTS
を介して個別に構成することも、 FZF_DEFAULT_OPTS
を介してグローバルに構成することもできます。 (例FZF_CTRL_R_OPTS='--tmux bottom,60% --height 60% --border top'
)
さらに詳しいヒントは wiki ページにあります。
ファイルおよびディレクトリのあいまい補完は、カーソルの前の単語がトリガー シーケンス (デフォルトでは**
で終わる場合にトリガーできます。
COMMAND [DIRECTORY/][FUZZY_PATTERN]**
# 現在のディレクトリ配下のファイル# - TABキーで複数選択可能vim **# 親ディレクトリ配下のファイルvim ../** # `fzf`vim ../fzf*と一致する親ディレクトリ配下のファイル* # ホーム ディレクトリの下のファイルvim ~/** # 現在のディレクトリの下のディレクトリ (単一選択)cd ** # ~/github の下のディレクトリ`fzf`cd ~/github/fzf** と一致します
PID のファジー補完が kill コマンドに提供されます。
#または キーを使用して複数のプロセスを選択できますkill -9 **
ssh および telnet コマンドの場合、ホスト名のあいまい補完が提供されます。名前は /etc/hosts および ~/.ssh/config から抽出されます。
ssh **telnet **
unset **export ** unalias **
# デフォルトの代わりに ~~ をトリガー シーケンスとして使用します **export FZF_COMPLETION_TRIGGER='~~'# fzf コマンドのオプションexport FZF_COMPLETION_OPTS='--border --info=inline'# fd を使用します (https://github.com/ sharkdp/fd) を使用してパス候補をリストします。# - 関数の最初の引数 ($1) は、トラバーサルを開始するためのベース パスです# - ソースを参照してください。詳細についてはコード (completion.{bash,zsh}) を参照してください。_fzf_compgen_path() { fd --hidden --follow --exclude ".git" 。 "$1"}# fd を使用してディレクトリのリストを生成します complete_fzf_compgen_dir() { fd --type d --hidden --follow --exclude ".git" 。 "$1"}# _fzf_comprun 関数による fzf オプションの高度なカスタマイズ# - 関数の最初の引数はコマンドの名前です。# - 残りの引数は必ず fzf に渡す必要があります。_fzf_comprun() { local command =$1 シフト case "$command" incd) fzf --preview 'tree -C {} |ヘッド -200' "$@" ;; エクスポート|アンセット) fzf --preview "eval 'echo $'{}" "$@" ;; ssh) fzf --preview 'dig {}' "$@" ;;*) fzf --preview 'bat -n --color=always {}' "$@" ;; イーサック}
bash では、ファジー補完は事前定義されたコマンド セットに対してのみ有効です (リストを表示するにはcomplete | grep _fzf
)。ただし、 _fzf_setup_completion
ヘルパー関数を使用すると、他のコマンドでもこれを有効にすることができます。
# 使用法: _fzf_setup_completion path|dir|var|alias|host COMMANDS..._fzf_setup_completion path ag git kubectl _fzf_setup_completion ディレクトリ ツリー
(カスタム補完 API は実験的なものであり、変更される可能性があります)
"COMMAND"という名前のコマンドの場合、 _fzf_complete
ヘルパーを使用して_fzf_complete_COMMAND
関数を定義します。
# 「doge」コマンドのカスタムファジー補完# 例: doge **_fzf_complete_doge() { _fzf_complete --multi --reverse --prompt="doge> " -- "$@" < <( echo very echo wow echo such echo doge )}
--
の前の引数は fzf のオプションです。
--
の後に、元の補完引数を変更せずに渡すだけです ( "$@"
)。
次に、補完候補を生成する一連のコマンドを作成し、その出力をプロセス置換 ( < <(...)
) を使用して関数に送ります。
zsh は命名規則に従って関数を自動的に取得しますが、bash ではcomplete
コマンドを使用して関数をコマンドに手動で関連付ける必要があります。
[ -n "$BASH" ] && 完全 -F _fzf_complete_doge -o デフォルト -o bashdefault doge
fzf からの出力を後処理する必要がある場合は、次のように_fzf_complete_COMMAND_post
を定義します。
_fzf_complete_foo() { _fzf_complete --multi --reverse --header-lines=3 -- "$@" < <( ls -al )}_fzf_complete_foo_post() { awk '{print $NF}'} [ -n "$BASH" ] && 完全 -F _fzf_complete_foo -o デフォルト -o bashdefault foo
README-VIM.mdを参照してください。
fzfは速いです。ほとんどの使用例では、パフォーマンスが問題になることはありません。ただし、パフォーマンスに影響を与える可能性のあるオプションに注意する必要がある場合があります。
--ansi
、入力内の ANSI カラー コードを抽出して解析するように fzf に指示し、初期スキャンが遅くなります。したがって、これを$FZF_DEFAULT_OPTS
に追加することはお勧めできません。
--nth
各行をトークン化する必要があるため、fzf が遅くなります。
--with-nth
fzf が各行をトークン化して再構成する必要があるため、fzf が遅くなります。
fzf を離れることなく外部プロセスを開始するためのキー バインドを設定できます ( execute
、 execute-silent
)。
# fzf を離れることなく、less でファイルを開くには F1 を押します。 # CTRL-Y を押して行をクリップボードにコピーし、fzf を中止します (pbcopy が必要)fzf --bind 'f1:execute(less -f {}),ctrl-y:実行サイレント(echo {} | pbcopy)+abort'
詳細については、マニュアル ページの「キー バインディング」セクションを参照してください。
become(...)
上で説明したexecute(...)
/ execute-silent(...)
に似ていますが、コマンドを実行して完了時に fzf に戻る代わりに、fzf を新しいプロセスに変えます。指示。
fzf --bind 'enter:become(vim {})'
一見同等のコマンド置換vim "$(fzf)"
と比較して、このアプローチにはいくつかの利点があります。
CTRL-Cで fzf を終了すると、Vim は空のファイルを開けません
空の結果でEnter キーを押しても、Vim は空のファイルを開きません
空白が含まれている場合でも複数の選択を処理できます
fzf --multi --bind 'enter:become(vim {+})'
公平を期すために、 fzf --print0 | xargs -0 -o vim
を実行します。 fzf --print0 | xargs -0 -o vim
vim "$(fzf)"
指定すると、前述の問題がすべて解決されます。それにもかかわらず、 become(...)
さまざまなシナリオでさらなる利点を提供します。
複数のバインディングを設定して、ラッピング スクリプトを使用せずにさまざまな方法で結果を処理できます。
fzf --bind 'enter:become(vim {}),ctrl-e:become(emacs {})'
以前は、 --expect=ctrl-e
使用して、fzf の出力の最初の行を確認する必要がありました。
fzf のフィールド インデックス式を使用して、後続のコマンドを簡単に構築できます。
# Vim でファイルを開き、 linegit grep --line-number に移動します。 |fzf --delimiter : --nth 3.. --bind 'enter:become(vim {1} +{2})'
reload
アクションをキーまたはイベントにバインドすることで、fzf で候補リストを動的にリロードできます。詳細については #1750 を参照してください。
ps -ef | fzf --bind 'ctrl-r:reload(ps -ef)' --header 'CTRL-R を押してリロード' --header-lines=1 --height=50% --layout=reverse
FZF_DEFAULT_COMMAND='検索。 -タイプ f' fzf --bind 'ctrl-d:reload(find . -type d),ctrl-f:reload(eval "$FZF_DEFAULT_COMMAND")' --height=50% --layout=reverse
次の例では、ripgrep のセレクター インターフェイスとして fzf を使用します。 reload
アクションをchange
イベントにバインドしたため、 fzf と入力するたびに、ripgrep プロセスがプレースホルダー式{q}
で示される更新されたクエリ文字列で再起動されます。また、fzf が二次フィルタリングを実行しないように--disabled
オプションを使用していることに注意してください。
: | rg_prefix='rg --column --line-number --no-Heading --color=always --smart-case' fzf --bind 'start:reload:$rg_prefix ""' --bind 'change:reload:$rg_prefix {q} ||真実' --bind 'enter:become(vim {1} +{2})' --ansi --無効 --height=50% --layout=reverse
ripgrep が一致するものを見つけられなかった場合、ripgrep はゼロ以外の終了ステータスで終了し、fzf はそれについて警告します。警告メッセージを抑制するために、 || true
を追加しました。コマンドに対して|| true
なので、常に 0 で終了します。
より洗練された例については、「対話型 Ripgrep ランチャーとしての fzf の使用」を参照してください。
--preview
オプションが設定されている場合、fzf は現在の行を引数として外部プロセスを自動的に開始し、結果を分割ウィンドウに表示します。 $SHELL
は$SHELL -c COMMAND
でコマンドを実行するために使用されます。ウィンドウは、マウスまたはカスタム キー バインドを使用してスクロールできます。
# {} は、フォーカスされた linefzf --preview 'cat {}' の一重引用符で囲まれた文字列に置き換えられます。
プレビュー ウィンドウは ANSI カラーをサポートしているため、Bat や Highlight など、ファイルの内容を構文強調表示する任意のプログラムを使用できます。
fzf --preview 'bat --color=always {}' --preview-window '~3'
--preview-window
オプションを使用してプレビュー ウィンドウのサイズ、位置、境界線をカスタマイズでき、 --color
オプションを使用してプレビュー ウィンドウの前景色と背景色をカスタマイズできます。例えば、
fzf --height 40% --layout reverse --info inline --border --preview 'ファイル {}' --preview-window up,1,border-horizontal --bind 'ctrl-/:change-preview-window(50%|hidden|)' --color 'fg:#bbccdd,fg+:#ddeeff,bg:#334455,preview-bg:#223344,border:#778899'
オプションの完全なリストについては、マニュアル ページ ( man fzf
) を参照してください。
より高度な例はここにあります。
警告
fzf はファイル ファインダーではなく汎用テキスト フィルターであるため、 --preview
オプションを$FZF_DEFAULT_OPTS
に追加することはお勧めできません。
# ***************************** これは行わないでください。 **# *********************export FZF_DEFAULT_OPTS='--preview "bat --style=numbers --color=always --line-range :500 {}"'# Bat は、ファイルのリスト以外の入力では機能しませんps -ef | fzf シーケンス 100 | fzfhistory | fzf
fzf は、次のいずれかのプロトコルを使用してプレビュー ウィンドウに画像を表示できます。
キティグラフィックスプロトコル
iTerm2 インライン画像プロトコル
シクセル
詳細については、bin/fzf-preview.sh スクリプトを参照してください。
fzf --preview 'fzf-preview.sh {}'
.gitignore
の尊重fd、ripgrep、または Silver searcher を使用して、 .gitignore
を尊重しながらファイル システムを横断できます。
# fd の出力を fzffd に入力します --type f --strip-cwd-prefix | fzf# fd を fzfexport のデフォルトのソースとして設定します。 FZF_DEFAULT_COMMAND='fd --type f --strip-cwd-prefix'# これで、fzf (パイプなし) は fd コマンドを使用してリストを生成しますfzf# コマンドを適用するにはCTRL-T も同様にエクスポート FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
コマンドがシンボリック リンクをたどるようにし、隠しファイルを除外したくない場合は、次のコマンドを使用します。
import FZF_DEFAULT_COMMAND='fd --type f --strip-cwd-prefix --hidden --follow --exclude .git'
Fish のCTRL-T
キー バインドは、bash や zsh のバインドとは異なり、コマンドラインの最後のトークンを再帰的検索のルート ディレクトリとして使用します。たとえば、次のコマンドラインの最後でCTRL-T
押します。
ls /var/
/var/
の下にあるすべてのファイルとディレクトリを一覧表示します。
カスタムFZF_CTRL_T_COMMAND
を使用する場合は、展開されていない$dir
変数を使用してこの機能を利用します。 $dir
デフォルトは です.
最後のトークンが有効なディレクトリではない場合。例:
set -g FZF_CTRL_T_COMMAND "コマンド find -L $dir -type f 2> /dev/null | sed '1d; s#^./##'"
Vitor Mello によって作成された fzf Theme Playground は、fzf テーマをインタラクティブに作成できる Web ページです。
https://github.com/junegunn/fzf/wiki/関連プロジェクト
MIT ライセンス (MIT)
Copyright (c) 2013-2024 チェ・ジュングン