Arch Linuxでfzfを起動する

Arch Linuxでfzfを起動する

ただインストールしました。富士Arch Linux 4.13.11で使用されますpacman -S fzf

Bashでfzfこれを呼び出して、現在のディレクトリとそのサブディレクトリにあるファイルを選択できます(Ctrl+nCtrl+を使用)。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>

これらすべての前提はfzfVimプラグイン;インストールしました。プラグこれを私の中に入れてください.vimrc

Plug 'junegunn/fzf.vim'

その後、:PlugInstallVimで呼び出します。

これはリストですfzfVimから呼び出すことができるコマンド。

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リポジトリにあります。

さらに進む

fzfVim、Vim、およびTmuxの強力な組み合わせを確認するには、以下を確認してください。Keegan Lowensteinによるブログ投稿--previewそこで構成を得ました)。

ここシェル統合を構成する方法についていくつかのアイデアfzf

fzfより多くの構成例を見つけることができます。fzf閲覧ファイルそしてその中ウィキペディア

1ファイルを検索した後にVimで開くことが頻繁に発生する場合は、次のようにファイルのキーバインディングを作成できます。このゾーン.bashrc

関連情報