棚卸しのシーズンなので、そのついでに。
個人的なルール
(N)Vimはカスタマイズできるのがいい!ってことで、すごいたくさん設定を書いてる人とか、山ほどプラグインをいれてる人とかも多いけど、自分はそうではない。
- 設定は1ファイルにおさめる
- できるだけ単機能なものを組み合わせる
- 気の合うSensible defaultsに従う
という感じでやってる。
こだわりがあるのかないのか、自分でもよくわからない。
今のところ、lazy.nvim
を含めて35ヶしかプラグインを使ってない。
https://github.com/leaysgur/dotfiles/blob/7d98c8fe5312114a3ccb9a408d68fa34eba27722/nvim.lua
テーマまわり
クロード・モネの有名な絵画である「睡蓮」の色使いをベースにしたカラースキームとのこと。
基本的に青とか紺ベースが好きなので、ここ最近のイチオシ。
nvim_web_devicons
よりもアイコンの雰囲気が好みってだけではあるが、mock_nvim_web_devicons()
でモックもできて便利。
UI/UX
シンプルなステータスライン。
これぞ気の合うデフォルト設定って感じだったので。
バッファの右上にファイル名を出してくれるやつ。
ステータスラインにもファイル名は出るけど、laststatus = 3
にしてるので、:vs
とかで画面を割るとアクティブになってないとわからなくて不便なので。
いわゆるインデントガイド。
あとで出てくるblink.cmp
にお世話になる記念に乗り換えた。
色に関する表記があったとき、Virtual textでそれを表示してくれる。
最近インラインで表示できるオプションが追加されて、複数の色が1行に並んでるときもみやすくなった。
YankしたものをOSのクリップボードに飛ばしてくれる(個人的に)画期的なプラグイン。
ついでにハイライトもしてくれてわかりやすい。
Neovideみたくカーソル移動にエフェクトをつけてくれるプラグイン。
mini.animate
のcursor
でも同様のことはできてたけど、こっちのほうがよりNeovideっぽい。
:sp
なんかで分割した画面の幅高さを、いまフォーカスしてるものが見やすくなるよういい感じに自動リサイズしてくれる画期的なプラグイン。
今まで通り均等に整列させるモードと切り替えられるコマンドもある。
Gitと連携して、行番号の色を変えてる。gitsigns.nvim
でもいいけど、より機能が少なかったから。
カーソルのあるところにある単語と同じものをハイライトしてくれる。
ちゃんと知りたい時は*
で検索したりするけど、変数スコープを考慮してくれたりと地味にわかりやすい。
Normal/Insert/Deleteみたいな各種モードを、行・カーソルハイライトで明示してくれるプラグイン。
こういうさりげないのが好き。
有名なファイラー。
ただ個人的な需要としては、
- Netrwのように、
vi ./dir
ってするとそのディレクトリ内のファイルを一覧できる - ツリービューでディレクトリをtoggleできる
- リネームやファイルの移動ができるとなおよい
くらいなので、やや機能過多を感じてるけど、他に代わりが見つけられない。誰か知ってたら教えてください。
Treesitter関連
言わずもがな。
https://github.com/JoosepAlviste/nvim-ts-context-commentstring
コンテキストに応じてコメント文字を変えてくれるやつ。これがないと.html
/.vue
/.astro
/.svelte
は書けない。
今いるコンテキスト(関数とかループとか)を見せてくれるやつ。
HTMLやJSXやらで、開きタグをリネームしたら閉じタグも一緒にリネームしてくれる。
nvim-autopairs
のタグ版って感じで閉じタグを自動で書いてくれる。これがないと以下略。
カッコとかタグとか、あらゆるペアをジャンプできるようになる。
ネストしたカッコのペアを一括で削除したりもできて便利だが、たまに効かない?
nvim-ts-context-commentstring
を実際に発動させる担当。
複数行になってるものを1行にしたり、またその逆にしたりと便利。
テキスト編集
インデントに使う文字とサイズを自動判別するやつ。
クオートを置き換えたり、削除したり、選択範囲を囲ったり。
デフォルトのmatchparen
の改良版とのことだが、対応するカッコをハイライトする用途でしか使ってないつもり。
対応するカッコの自動挿入をしてくれる。nvim-ts-autotag
のプレーンなカッコ版。
mason.nvim
でインストールしたフォーマッタを発動させるやつ。
_
のワイルドカード指定で、明示のないfiletypeにまとめてPrettierを仕掛けられるのが好き。
Copilotをカーソル位置で自動で動かすのに使ってる。パネルは使ってない。
LSPまわり
https://github.com/neovim/nvim-lspconfig https://github.com/williamboman/mason-lspconfig.nvim https://github.com/williamboman/mason.nvim
特に言うことなし。
デフォルトのLSPのDiagnosticsの表示方法を改善してくれるプラグイン。
デフォルトのやつは、画面幅が狭いと何が書いてあるかわからないけど、これは改行したり回り込んだりしてくれる。
個人的これがあるからNvim使ってるかもしれないプラグイン筆頭。
その変数や関数がどこから参照されてるかとか、定義はどうなってるとか、そういったものをその名の通りチラ見させてくれる。
新進気鋭の補完プラグインやけど、既に十分な実用性があると思う。
blink
シリーズは他にもあるので、今後にも期待である。
おわりに
Neovim使うならこれいれとけ!的なプラグインの顔ぶれとは、またちょっと違う毛色になってるんではなかろうか。
こういうテイストでおすすめなプラグインがあれば、ぜひ教えてください。
カッコまわり、なんかもう少しシュッとできんかな〜。