$cat2koban->blog;

猫の手も借りたい

NERDTree を辞めて fzf.vim に移行しようかどうか

TL;DR

個人的には「ずっとこのツールを使っていくぞ!」と決めてしまうよりも、適宜自分に合ったツールや、ツールの組み合わせを見つけながらアップデートしていくのが良いと思っています。 なので一先ず、今までありがとう NERDTree 。今日からよろしく fzf.vim とすることにしました :)

NERDTree

現在 nvim でコードを書く際、NERDTree というプラグインを使っています。IDE ライクな見た目が気に入っており、vim-devicons と呼ばれる別のプラグインと合わせて使用することで、各言語やフレームワークに応じてカッコいいアイコンが表示されるようにもなります。

github.com

github.com

ちなみに、私の dotfilesmbp-wide ブランチにある README に、簡単に vim-devicons の設定方法が書いてあったりします。

f:id:sorehaedamame:20200531231408p:plain

そして下の写真の左側に表示されているフォルダや、カッコいい Vim のアイコンがついたファイルなどの画面が NERDTree によって得られる拡張機能です。

f:id:sorehaedamame:20200531222236p:plain
nerdtreeの画面

人によっては動作が重かったりするなどの理由で、NERDTree よりも軽いプラグインを利用していたり、デフォルトの netrw を利用している人もいたりするらしいです。( 私もこの NERDTree を利用する前は、netrw を利用していました。 )

fzf.vim

fzf.vim は、vim 上で fzf を呼び出し、ファイルやファイル内文字列のあいまい検索などを行ってくれるプラグインです。使用するには fzf を手元の環境にインストールしているか、vimプラグインマネージャーを利用してインストールする必要があります。細かいインストール方法や依存については公式の README を見た方が早いでしょう。

github.com

私の場合は、既に fish-ghq と呼ばれる fish 用の ghq プラグインを利用していたので、手元の環境に fzf が brew によってインストールされていました。なので下記のように、fzf.vim と一緒に手元の環境の fzf のパスを指定し手あげることでインストールしてあげました。

~~ 省略

" fuzzy finder ------------------------
Plug '/usr/local/opt/fzf'
Plug 'junegunn/fzf.vim'

call plug#end()

試しに、simple_calendar と呼ばれる Ruby Gem のルートディレクトリに移動し nvim . として、NERDTree でディレクトリ一覧を表示させ、:Files とターミナルモードで入力してみました。するとこんな感じで、 fzf の画面がウィンドウ下部に出力されます。~/g/g/c/simple_calendar/ の後ろに続けて検索したい文字列を入力すると、曖昧検索してくれた結果をハイライトしつつ画面に表示してくれます。

f:id:sorehaedamame:20200531233938p:plain

そして fzf.vim の README を見ていて気がついたのですが、the_silver_searcher ripgrep と呼ばれる peco や fzf のようなシェルで使われるプラグインもサポートしているようで、合わせて設定するとさらに便利に fzf.vim を利用できるらしいです。

:Ag として呼び出すことで利用できる github.com

:Rg として呼び出すことで利用できる github.com

ファイル名で探すなら :Files で、ファイル内文字列なら :Ag, :Rg とする。それくらいでしかわかっておらず、実は便利な使い方はまだ自分の中で不明瞭なままです... 次の宿題として、使ってみてこう言う機能が便利そうなどの紹介ができたらと思っています。

移行するかどうか

個人的には「ずっとこのツールを使っていくぞ!」と決めてしまうよりも、適宜自分に合ったツールや、ツールの組み合わせを見つけながらアップデートしていくのが良いと思っています。 今回見つけた fzf.vim は、直感的に文字でファイルを検索できるようになるのがとても便利だと感じていて、RubyMine でいう shift + shift に似たものだと思っています。なので作業効率は格段に上がりそうな気がしていて、試してみる価値は全然ありそうです。 と言うわけで一旦、今までありがとう NERDTree 。今日からよろしく fzf.vim とすることにしてみて、経過をこちらのブログに適宜アップできていければと思います。