nvim-tree.lua で .gitignore にリストされたファイルも表示する
Neovim で使えるファイルエクスプローラープラグインとして nvim-tree.lua があります。 とても手に馴染んでいて、気に入っているプラグインの1つです。
このプラグインで .gitignore されたファイルもエクスプローラー上に表示する方法と、表示したくなった背景についてご紹介。
設定方法
nvim-tree.lua のデフォルトでは .gitignore に登録されたファイルは表示されませんが、この挙動を変える設定項目として filters.git_ignored
1 がありますので、ここを切り替えるだけで完了です。
require("nvim-tree").setup({
filters = {
git_ignored = false, -- デフォルトはtrue
custom = {
"^\\.git",
"^node_modules",
},
},
})
filters.custom
2 というのは、表示したくないファイル・ディレクトリを Vim の正規表現で指定できる設定項目です。.git
や node_modules
のようないくつかのディレクトリは Neovim 上で開きたい場面も考えづらく、また(おそらく)パフォーマンスも劣化してしまうと思い、除外しています。
実はドキュメントを見るまで filters.git_ignored
の存在は知らず、もう少し色々工夫が必要かなと想像していたのですがあっさり実現できてしまいました。さすがは人気のあるプラグインです。
.gitignore にリストされたファイルも表示したくなった理由
Neovim 上でファイルを開くときは telescope.nvim というファジーファインダーで検索して開くことが最も多いのですが、こちらは頻繁に使うために速度が重要です。そのような理由もあり telescope.nvim でも .gitignore されたファイルは基本的に検索対象外にしていました。
ですが開発をしていると .env
ファイルや Rails アプリケーションでよく使われる config gem が作る config/settings/*.yml
といった、秘匿情報系を含むファイルを編集したいケースがちょくちょくあることに気が付きました。これらのファイルは通常 .gitignore に記述されます。
個人的な感覚ですが、ファイルエクスプローラーの方は比較的ディレクトリ構造のまま表示してくれる方が直感的で扱いやすいように感じたので nvim-tree.lua の方で .gitignore にリストされたファイルも表示するようにした、という背景でした。