【コマンド履歴を曖昧検索】ターミナルにfzfを導入して、コマンド実行をスムーズにする
スポンサーリンク
ターミナルでコマンドを実行するときのお話。
「あれ?このときコマンドなんだっけ?」
「前も実行したけど全然思い出せない」
「メモってないし、しょうがないググるか」
というときが少なからずあると思う。
過去に実行したコマンドをすべて覚えていないし、でも毎回ググったりするのも手間。
そんなとき過去に実行したコマンドをキーワードを少し入力して探すことができる。
それが「fzf」というツール。
昨日、ターミナルの環境設定(「oh-my-zsh」から「Prezto」に変更)する備忘録を書いたけど、この設定と同時に、このコマンドの履歴検索に便利な「fzf」を導入したので、今日はそっちの導入方法の備忘録を残す。
昨日の「Prezto」の記事
ahrk-izo.hatenablog.com
fzfとは
fzfとはいろいろググっていただきたいが、ざっくり言うと、キーワードを入力してコマンドの履歴探す便利なツール。
例えば「zsh vim」というようにキーワードを入力すると、履歴の中からそのワードを使ったコマンドを候補として出してくれる。
こんな風に。大変便利。
今回これを導入していく
[目次]
スポンサーリンク
1. [準備] Homebrewのアップデート
今回はHomebrewを使ってインストールしていく。
(これを使わず、Gitで取得する方法もあるけど、なんとなく僕はHomebrewを使うことにした)
とりあえずHomebrewのバージョン確認
$ brew -v Homebrew 2.1.4 Homebrew/homebrew-core (git revision 03850a; last commit 2019-06-07) Homebrew/homebrew-cask (git revision ed3b0; last commit 2019-06-08)
最近アップデートしてなかった気がするからアップデートする。
$ brew update
もう一度バージョン確認
$ brew -v Homebrew 2.4.9 Homebrew/homebrew-core (git revision 553f7; last commit 2020-07-29) Homebrew/homebrew-cask (git revision 247c5; last commit 2020-07-29)
よし。上がったね。
Homebrewを取得したときの記事はこちら
ahrk-izo.hatenablog.com
2. fzfの取得
インストール元は、こちらのGitHubのリポジトリ。
https://github.com/junegunn/fzf
基本的に、ここの「Using Homebrew or Linuxbrew」に書いたある部分の通りに行う。
書いてあるのは、
brew install fzf # To install useful key bindings and fuzzy completion: $(brew --prefix)/opt/fzf/install
「$(brew --prefix)」ってのはHomebrewのインストール先のディレクトリ
実行してみるとわかる。
$ brew --prefix /usr/local
つまり、/usr/local ってこと。(環境によって変わるかも)
ということで、実際に実行してfzfを取得してみる。
fzf取得
$ brew install fzf
はい。取得成功。
ちなみに、Homebrewではなく、gitを使う場合は
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf ~/.fzf/install
です。
2. fzfのインストール
取得したfzfをインストールする。これも書いてある通りに実行する。
fzfインストール
$ /usr/local/opt/fzf/install
※「$(brew --prefix)」は、「/usr/local」
3回Yes or No を聞かれるので、すべてYesにする。
Do you want to enable fuzzy auto-completion? ([y]/n)
→オートコンプリート有効にするかい?→Yes
Do you want to enable key bindings? ([y]/n)
→キーバインド有効にするかい?→Yes
Do you want to update your shell configuration files? ([y]/n)
→シェルの設定ファイルをアップデートしたい?→Yes
まぁこんな感じ。
最後の設定ファイルの件は、(僕の場合はZshなので~/.zshrcに)
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
の1行が追記される。
実行結果に、
Finished. Restart your shell or reload config file. source ~/.bashrc # bash source ~/.zshrc # zsh
と表示されたので、有効にするにはシェルを再起動するか、sourceコマンド実行する。(まぁ再起動が確実)
スポンサーリンク
3. fzfを確認する
このインストールで、fzfとfzf-tmuxというのが使えるようになったはずなので、それぞれバージョンを確認してみる。
$ fzf --version 0.21.1 (brew) $ fzf-tmux --version fzf-tmux (with fzf 0.21.1 (brew))
よし。問題なし。
では本題の曖昧なキーワードで履歴検索してみる。
Control + R
で履歴表示して、
そのまま例えば「zsh」と入力すると、
よし。バッチリ。
[おまけ] ほかのキーバインドとか
https://github.com/junegunn/fzf の「Key bindings for command-line」の部分に書いてあるやつだけど、
Ctrl + t : カレント以下のファイル、ディレクトリ表示
Ctrl + r : コマンド履歴
Alt + c (option + c): カレント以下ディレクトリ
これはこれで便利そう。
以上。