lir.nvim というファイラの紹介
自分で作った lir.nvim というLua製のNeovim用のファイラを紹介します
筆者について
- Vim 歴はたぶん 4年くらいです
- 去年くらいから Neovim を本格的に使い始めました
lir.nvim について
このプラグインは、mattn さんの vim-molder に影響されています。
自分は vim-molder を使い始めた直後に Neovim に乗り換えたため、Neovim でも vim-molder のようなファイラがほしいと思っていました。
Neovim では lua を使って処理をできることを知り、vim-molder を参考にして Lua で vim-molder っぽいものを書いてみることにしました。
最初は自分だけが使えればいいって思い vimfiles に書いていたのですが、いい感じにできたのでプラグインとして公開しました。
lir.nvim はかれこれ1年位使っていると思います。
lir.nvim の特徴
action をユーザーがカスタマイズできる
lir.nvim ではファイルの作成やディレクトリの作成、ディレクトリの移動などを簡単に作成できる仕組みを提供しており、require('lir').get_context()
で取得できるファイルの情報 (表示しているディレクトリのパスやカーソル下のファイル名など) を使ってユーザーが独自に action を作成できるようになっています。これは vim-molder と vim-molder-operations の実装を参考にしました。
これにより、lir.nvim が提供しているデフォルトの action (lir/actions.lua) の挙動が合わなかった場合、ユーザーが自分好みに action を作れるようになります。
筆者も好きなようにカスタマイズしています。 → vimfiles
ファイルタイプのアイコン表示
オプションで nvim-web-devicons を使用して、ファイルタイプのアイコンを表示できるようにしています。
ファイルタイプのアイコンがあるとファイルの種類がわかりやすくなるため、自分としてはこの機能は必須でした。
左がアイコンなし、右がアイコンありです
デフォルトのマッピングは提供しない
lir.nvim 上での操作もそうですが、lir.nvim を起動するためのマッピングも提供していません。そのため、ユーザーが好きなようにマッピングを設定できます。
README.md の設定をコピペで動くようになっていますが、自分なりの設定ができるのでいいかなと思っています。
floating window での操作性が良い
自分は、Neovim の floating window を使ってサクサクとファイラを開きたいと思っていたため、lir.nvim では floating window での操作を重視しています。
また、setup 関数で floating window の設定もできます
ディレクトリ移動でのカーソル位置の保持
毎回、バッファの一番上にカーソルが行くのは自分としては使いにくいと感じているため、この機能を重視しています。これにより、ディレクトリ間での移動が快適になっていると思います。
lir.nvim の拡張機能
lir-git-status.nvim
git のステータスが表示されます。
最近、この PR によって動作が高速になったため、実用的に使えるようになりました。
お気に入りの拡張機能です。
lir-mmv.nvim
mmv を使って、リネームしたいと思って作りましたが、正直あまり使用していません...
lir-bookmark.nvim
ファイルやディレクトリをブックマークしておいて、さくっと開けるようにしたいと思って作りましたが、こちらもあまり使用していません...
まとめ
シンプルで、action をカスタマイズできる lir.nvim を紹介しました。
Neovim でシンプルなファイラを探している方や、自分で action をカスタマイズしてみたい方はぜひ使ってみてください。
:qa!
Discussion