ただインストールしました。富士Arch Linux 4.13.11で使用されますpacman -S fzf
。
Bashでfzf
これを呼び出して、現在のディレクトリとそのサブディレクトリにあるファイルを選択できます(Ctrl+nとCtrl+を使用)。p
大丈夫です。しかし、Bashの統合が必要です。
私はどこに行くべきですか?
答え1
基本 Bash キーバインディング
を使用して、以下でBash統合用のファイルを見つけwhereis fzf
ました。fzf
/usr/share/fzf
completion.bash
key-bindings.bash
後ろにsource
これら 2 つのファイルを編集すると、Bash の複数のキーバインディングが有効になります。たとえば、Ctrl+を押すとt現在のディレクトリのファイルを検索でき、Ctrl+を押すとrコマンド履歴を検索できます。
ディレクトリを見つけて変更するには、Alt+を使用してくださいc。
これらのキーバインディングを永続化するために、次のキーバインディングを追加しました.bashrc
。
source /usr/share/fzf/completion.bash && source /usr/share/fzf/key-bindings.bash
カスタマイズ
私が見つけた便利だと思われるカスタマイズは、使用時にファイルプレビューを表示することですfzf
(.bashrc
これも私のファイルに入れました)。
# When selecting files with fzf, we show file content with syntax highlighting,
# or without highlighting if it's not a source file. If the file is a directory,
# we use tree to show the directory's contents.
# We only load the first 200 lines of the file which enables fast previews
# of large text files.
# Requires highlight and tree: pacman -S highlight tree
export FZF_DEFAULT_OPTS="--preview '(highlight -O ansi -l {} 2> /dev/null ||
cat {} || tree -C {}) 2> /dev/null | head -200'"
パスの完成
デフォルトでは、fzf
いくつかのファジーパスの完成をサポートしています。ハードコーディングcd
、、ls
などのコマンドですvim
。これらのコマンドのリストを表示するには、を実行してくださいcomplete | grep _fzf
。
たとえば、vim **
TabBashと入力すると、現在のディレクトリでファジー検索が開始され、Vim 1を使用して選択したファイルが開きます。
これはうまくいきますが、PDFを同じ方法で開きたいです。次の行を追加してこの機能を有効にできます.bashrc
。
_fzf_setup_completion path zathura
ここでは、zathura
私のPDFビューアです。必要なドキュメントビューアに置き換えることができます。
ファジーパスの補完は、現在のディレクトリだけでなく、すべてのパスに対して機能します。
vim ~/**
次に、[Tabファジー検索]をクリックしてホームディレクトリにあるファイルをVimで開きます。
これ閲覧ファイルのfzf
パス補完を有効にするためのより多くの例を提供します。
パス以外のものを完了してください。
fzf
ファジー検索ファイルに限定されない。たとえば、
ssh **
Tab入力すると、ホスト名とIPアドレスのリストが表示されます。~/.ssh/config
~/.ssh/known_hosts
kill **
Tabプログラム名の一部を入力して、実行中のプログラムを終了できます。
プロセスIDを必要とするすべてのコマンドに、プロセスの類似アイテム検索を追加することもできます。
_fzf_setup_completion proc top pmap pstree
top -p **
Tabプロセスを選択し、以下を使用してリソース使用量を観察します。top
。
このカスタマイズには以下が含まれます。pmap
そしてpstree
これらのコマンドをより便利にするには、プロセスIDを入力する代わりにプロセス名をファジー検索してください。
ビーム統合
Vimセッションで使用される.vimrc
いくつかのキーバインディングは次のとおりです。fzf
" Search and switch buffers
nmap <leader>b :Buffers<cr>
" Find files by name under the current directory
nmap <leader>f :Files<cr>
" Find files by name under the home directory
nmap <leader>h :Files ~/<cr>
" Search content in the current file
nmap <leader>l :BLines<cr>
" Search content in the current file and in files under the current directory
nmap <leader>g :Ag<cr>
これらすべての前提はfzf
Vimプラグイン;インストールしました。プラグこれを私の中に入れてください.vimrc
:
Plug 'junegunn/fzf.vim'
その後、:PlugInstall
Vimで呼び出します。
これはリストですfzf
Vimから呼び出すことができるコマンド。
Vimでテキストを作成すると、パスの完成も可能です。
imap <c-x><c-f> <plug>(fzf-complete-path)
CtrlVimで開いたファイルに「〜/」を書き、+ x+を押してくださいf。ファジー検索でファイルを選択すると、そのパスが Vim のカーソル位置に追加されます。より閲覧ファイルこれらのマッピングに関する追加情報
プロジェクトファイルの検索
特にソフトウェアを開発するときは、特定のプロジェクトのファイルを切り替えるのが好きです。プロジェクトがバージョン管理にGitを使用していると仮定すると、次は検索ファイルをパージするバインディングです。名前プロジェクト内で選択したファイルを開きます。
nmap <leader>gr :GFiles! --cached --others --exclude-standard<cr>
バラよりこの議論ファイルをファジー検索する方法コンテンツ現在Gitリポジトリにあります。
さらに進む
fzf
Vim、Vim、およびTmuxの強力な組み合わせを確認するには、以下を確認してください。Keegan Lowensteinによるブログ投稿(--preview
そこで構成を得ました)。
ここシェル統合を構成する方法についていくつかのアイデアfzf
。
fzf
より多くの構成例を見つけることができます。fzf
閲覧ファイルそしてその中ウィキペディア。
1ファイルを検索した後にVimで開くことが頻繁に発生する場合は、次のようにファイルのキーバインディングを作成できます。このゾーン.bashrc
。