はじめに
2023年もいよいよ終わりということで、neovimのプラグインを棚卸ししました。
そのついでにお気に入りのプラグインを紹介します。
↓設定ファイルのリポジトリです
目次
1.PluginManager
2.ColorScheme
3.LSP
- williamboman/mason.nvim
- williamboman/mason-lspconfig.nvim
- jayp0521/mason-null-ls.nvim
- nvimtools/none-ls.nvim
- nvimdev/lspsaga.nvim
- folke/trouble.nvim
4.Completion
5.Snippet
6.UI
- nvim-tree/nvim-tree.lua
- nvim-treesitter/nvim-treesitter
- akinsho/nvim-bufferline.lua
- nvim-lualine/lualine.nvim
- karb94/neoscroll.nvim
- petertriho/nvim-scrollbar
- folke/noice.nvim
- kevinhwang91/nvim-ufo
7.Search
8.Git
9.Util
- FotiadisM/tabset.nvim
- christoomey/vim-tmux-navigator
- akinsho/toggleterm.nvim
- kylechui/nvim-surround
- inkarkat/vim-ReplaceWithRegister
- numToStr/Comment.nvim
- windwp/nvim-autopairs
- iamcco/markdown-preview.nvim
- phaazon/hop.nvim
- folke/zen-mode.nvim
- Weissle/easy-action
- magatti/auto-session
- jackMort/ChatGPT.nvim
- gcmt/wildfire.vim
- gsuuon/note.nvim
1. PluginManager
neovimと言えばプラグイン。プラグインと言えばプラグインマネージャですね。
neovimユーザにとっては空気のような存在ですが改めて紹介します。
私は比較的モダン1なpackerを使っています。
他のプラグインマネージャとの比較についても軽く触れたかったのですが、私はpackerしか使ったことがないので割愛します。
とりあえずモダンで流行ってるやつ使っとけって感じでノリで使ってます。
2. ColorScheme
neovimのcolorschemeはvscと遜色ないくらい色々あって楽しいです。
こちらを眺めているだけでも楽しいと思います。
-
Shatur/neovim-ayu
メインで使っているcolorschemeです。
全体的にwarmな感じが好きで使ってます。
- catppuccin/nvim
- rebelot/kanagawa.nvim
-
folke/tokyonight.nvim
これらはたまに気分で切り替えたり切り替えなかったりします。
3. LSP
LSPというのはLanguage Server Protocolの略です。
neovimには、Language Serverに対してLSPで通信するためのクライアントが標準で備わっています(このクライアントのことをbuilt-in LSPと呼んだりします)。
LS/LSPをinstallしたり設定するために以下のプラグインを使います。
-
williamboman/mason.nvim
LSのinstallを簡単にしてくれるパッケージです。
:Mason
と実行すると専用のUIが出現し、そこからinstall/uninstall/updateを簡単に行えます。
-
williamboman/mason-lspconfig.nvim
masonでinstallしたLSの設定を自動化するためのプラグインです。
mason-lspconfigを使わない場合、masonでLSをinstallしてもsetupを済ませないとLSが有効になりません。
mason-lspconfigはそのsetupをinstallと同時に済ませてくれるプラグインです。 -
jayp0521/mason-null-ls.nvim
masonでDAP(Debug Adapter Protocol)、Linter、Formatterをインストールできるようにするプラグインです。 -
nvimtools/none-ls.nvim
masonでinstallしたlinterやfomatterの設定をしそれらを動かすためのプラグインです。
ファイルを上書き保存したときに勝手にformatしてくれるように設定もできます。 -
nvimdev/lspsaga.nvim
built-in LSPに備わった機能に対して、高速でいい感じのUIを提供してくれるプラグインです。
変数の定義元へのjumpや、docのhover、変数・関数のrenameなど、built-in LSPが本来もつ機能をより手軽に使えるようにしてくれます。 -
folke/trouble.nvim
LSPが検出したエラーやワーニングを一覧表示してくれるプラグインです。
4. Completion
built-in LSPには補完の機能がありません。
なので補完を表示したい場合はプラグインを入れる必要があります。
-
hrsh7th/nvim-cmp
補完エンジンの本体です。
これだけでは補完は表示されるようにはならず、以降紹介するcmp-シリーズと併用することで補完が表示されるようになります。 -
hrsh7th/cmp-nvim-lsp
built-in LSPに基づいた補完を表示してくれます。
変数とか関数とかその辺の補完ですね。-
onsails/lspkind.nvim
補完のアイコンをvscライクなiconにしてくれるプラグインです。
-
onsails/lspkind.nvim
-
hrsh7th/cmp-buffer
bufferに出てくる単語を補完で表示してくれます。 -
hrsh7th/cmp-path
ファイルやディレクトリのpathを保管してくれます。
5. Snippet
スニペット管理のためのプラグインです。
基本的にはスニペットは補完に表示されてほしいので、補完に表示させるために複数プラグインを入れています。
-
L3Mon4D3/LuaSnip
スニペット管理のためのプラグイン本体です。 -
rafamadriz/friendly-snippets
様々な言語でよく使うスニペット集です。 -
saadparwaiz1/cmp_luasnip
completionで紹介したcmp-シリーズのスニペット版です。
これを入れることで補完にスニペットが表示されます。
6. UI
neovimのUIカスタマイズはかなり自由度が高く、故に人によって全く違ったUIに仕上がるのが面白いところだと思います。
-
nvim-tree/nvim-tree.lua
ファイラです。
とりあえずgithubでstart数多いやつ使っとけって感じで使ってます。-
kyazdani42/nvim-web-devicons
ファイラで表示するアイコン集です。
vscにもあるやつのneovim移植版です。
-
kyazdani42/nvim-web-devicons
-
nvim-treesitter/nvim-treesitter
コードハイライトのためのプラグインです。 -
akinsho/nvim-bufferline.lua
タブ表示をカスタムするためのプラグインです。
-
nvim-lualine/lualine.nvim
neovimのステータスラインをカスタムするためのプラグインです。
-
karb94/neoscroll.nvim
<C-u>
や<C-d>
などのスクロール系の操作をした時の画面の動きがスムーズになります。
(追記)↑サンプル動画撮ったけどgifになるから結局カクカクに見えちゃってて草🌱 -
petertriho/nvim-scrollbar
スクロールバーを表示してくれます。 -
folke/noice.nvim
コマンド実行時のメッセージや、コードのエラー・ワーニングなど、neovim内の通知をモダンなUIにしてくれます。
環境によっては重くなるかもしれないので、その場合は必要な通知だけに適用するのが良いかと思います。
-
kevinhwang91/nvim-ufo
fold(関数などのブロック折りたたみ)の見た目をカスタムするためのプラグインです。
7. Search
neovimではファイル検索や字句検索のための非常に有名で強力なプラグインがあります。
-
nvim-telescope/telescope.nvim
telescopeはneovim版のfzfを提供してくれるプラグインです。
非常に有名で非常に強力なプラグインです。-
nvim-telescope/telescope-project.nvim
vscのprojectManagerのように、ローカルgitリポジトリをリストしてくれます。
telescopeのextensionの1つです。(telescopeには多くのextensionがあります)
-
nvim-telescope/telescope-project.nvim
-
nvim-telescope/telescope-fzf-native.nvim
telescopeの検索時に正規表現での検索をサポートしてくれるプラグインです
8. Git
-
lewis6991/gitsigns.nvim
bufferの差分をハイライトしてくれたり、git blameを表示してくれたりとgit周りのインテリセンスとなるプラグインです。
9. Util
-
FotiadisM/tabset.nvim
言語ごとにタブのインデント数を設定できます。 -
christoomey/vim-tmux-navigator
windowの移動をtmux風にしてくれるプラグインです。 -
akinsho/toggleterm.nvim
terminalをtoggleしてくれるプラグインです。
また terminalだけでなく、terminalで動作するTUIベースのアプリケーションもtoggleできます。
個人的に一番お世話になってるプラグインで全neovimユーザが使うべきだと思います。
lazygitやlazydockerもtoggleすることが可能です。 -
kylechui/nvim-surround
字句の囲い文字の追加・変更・削除を簡単にしてくれるプラグインです。
関数やタグでの囲いもできて便利です。
-
inkarkat/vim-ReplaceWithRegister
選択した範囲をヤンクしたテキストで置換するためのプラグインです。
痒いところに手が届くプラグインです。
-
numToStr/Comment.nvim
指定した範囲をコメントアウトしてくれるプラグインです。
-
windwp/nvim-autopairs
()
や{}
などの対になっている文字を補完してくれるプラグインです。 -
iamcco/markdown-preview.nvim
markdownプレビュー用のプラグインです。
一時的にローカルにパーサ用のサーバが立つのでブラウザからプレビューを閲覧できます。 -
phaazon/hop.nvim
neovimはf/Fでbuffer内の文字を検索してカーソルを移動できますが、その移動を楽にしてくれるプラグインです。
サンプルは、"foo"の箇所にカーソルをjumpさせたい時の動作です。
-
folke/zen-mode.nvim
みんな大好きzoenMode、neovimにもあります。
neovimは基本的にはUIシンプルになりがちですが、それでもすっきりしますね。
-
Weissle/easy-action
元々vimの方にeasy-motionという非常に有名で強力なプラグインがあったのですが、それのfolkです。
easy-actionはカーソルを動かさずに、操作したい場所と内容をコマンドで指定して遠隔でテキスト編集をするプラグインです。
サンプルでは、カーソルを動かさずに、"12345"の列をyank(してペースト)、"56789"の列をdd(してペースト)していいます。
-
magatti/auto-session
フォルダごとにsessionを記憶・復元するためのプラグインです。 -
jackMort/ChatGPT.nvim
neovimからchatGPTを使うためのプラグインです。
サンプルはREADMEに豊富にあるので、そちらをご覧ください。めっちゃ便利です。 -
gcmt/wildfire.vim
テキスト選択を楽にしてくれるプラグインです。
viw
とか打つ必要がなくなって結構便利です。
これも痒いところに手が届いて結構好きなプラグインの1つです。 -
gsuuon/note.nvim
ちょっとしたメモを取る時に使ってます。
最後に
いかがでしたでしょうか。
数えてみたら、全部で47個ありました。
個人的お気に入りプラグインランキングは
- 1位:akinsho/toggleterm.nvim
- 多分一番使用頻度高いです
- 2位:nvim-telescope/telescope.nvim
- 汎用性高すぎ
- 3位:Weissle/easy-action
- なんかかっこいい
です!
何かのお役に立てれば幸いです!では!