22
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Neovimプラグイン2023決定版

Last updated at Posted at 2023-12-31

はじめに

2023年もいよいよ終わりということで、neovimのプラグインを棚卸ししました。
そのついでにお気に入りのプラグインを紹介します。

↓設定ファイルのリポジトリです

目次

1.PluginManager

2.ColorScheme

3.LSP

4.Completion

5.Snippet

6.UI

7.Search

8.Git

9.Util

1. PluginManager

neovimと言えばプラグイン。プラグインと言えばプラグインマネージャですね。
neovimユーザにとっては空気のような存在ですが改めて紹介します。

私は比較的モダン1なpackerを使っています。

他のプラグインマネージャとの比較についても軽く触れたかったのですが、私はpackerしか使ったことがないので割愛します。
とりあえずモダンで流行ってるやつ使っとけって感じでノリで使ってます。

2. ColorScheme

neovimのcolorschemeはvscと遜色ないくらい色々あって楽しいです。
こちらを眺めているだけでも楽しいと思います。

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を簡単に行えます。
    mason.png

  • 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が本来もつ機能をより手軽に使えるようにしてくれます。

    • 定義/参照の表示
      lspsaga-gf.png
    • outlineの表示
      lspsaga-go.png
    • docのhover
      lspsaga-gd.png
  • folke/trouble.nvim
    LSPが検出したエラーやワーニングを一覧表示してくれるプラグインです。
    trouble.png

4. Completion

built-in LSPには補完の機能がありません。
なので補完を表示したい場合はプラグインを入れる必要があります。

  • hrsh7th/nvim-cmp
    補完エンジンの本体です。
    これだけでは補完は表示されるようにはならず、以降紹介するcmp-シリーズと併用することで補完が表示されるようになります。
  • hrsh7th/cmp-nvim-lsp
    built-in LSPに基づいた補完を表示してくれます。
    変数とか関数とかその辺の補完ですね。
    • onsails/lspkind.nvim
      補完のアイコンをvscライクなiconにしてくれるプラグインです。
  • hrsh7th/cmp-buffer
    bufferに出てくる単語を補完で表示してくれます。
  • hrsh7th/cmp-path
    ファイルやディレクトリのpathを保管してくれます。
    cmp.png

5. Snippet

スニペット管理のためのプラグインです。
基本的にはスニペットは補完に表示されてほしいので、補完に表示させるために複数プラグインを入れています。

  • L3Mon4D3/LuaSnip
    スニペット管理のためのプラグイン本体です。
  • rafamadriz/friendly-snippets
    様々な言語でよく使うスニペット集です。
  • saadparwaiz1/cmp_luasnip
    completionで紹介したcmp-シリーズのスニペット版です。
    これを入れることで補完にスニペットが表示されます。
    snip1.png

6. UI

neovimのUIカスタマイズはかなり自由度が高く、故に人によって全く違ったUIに仕上がるのが面白いところだと思います。

  • nvim-tree/nvim-tree.lua
    ファイラです。
    とりあえずgithubでstart数多いやつ使っとけって感じで使ってます。

  • nvim-treesitter/nvim-treesitter
    コードハイライトのためのプラグインです。

  • akinsho/nvim-bufferline.lua
    タブ表示をカスタムするためのプラグインです。
    bufline.png

  • nvim-lualine/lualine.nvim
    neovimのステータスラインをカスタムするためのプラグインです。
    lualine.png

  • karb94/neoscroll.nvim
    <C-u><C-d>などのスクロール系の操作をした時の画面の動きがスムーズになります。
    scroll.gif
    (追記)↑サンプル動画撮ったけどgifになるから結局カクカクに見えちゃってて草🌱

  • petertriho/nvim-scrollbar
    スクロールバーを表示してくれます。

  • folke/noice.nvim
    コマンド実行時のメッセージや、コードのエラー・ワーニングなど、neovim内の通知をモダンなUIにしてくれます。
    環境によっては重くなるかもしれないので、その場合は必要な通知だけに適用するのが良いかと思います。
    noice1.png
    noice2.png

  • kevinhwang91/nvim-ufo
    fold(関数などのブロック折りたたみ)の見た目をカスタムするためのプラグインです。
    ufo1.png
    ufo2.png

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-fzf-native.nvim
    telescopeの検索時に正規表現での検索をサポートしてくれるプラグインです

    • ファイル検索
      telescope-ff.png
    • buffer内で字句検索(/でkeymapしてます)
      telexcope-:-.png
    • workspace内で字句検索
      telescope-fg.png
    • colorscheme検索
      telescope-fc.png
    • :Telescope planetsとコマンド実行すると天体観測できます(プラグイン名にちなんだ機能で粋ですね)
      telescope-planet.png

8. Git

  • lewis6991/gitsigns.nvim
    bufferの差分をハイライトしてくれたり、git blameを表示してくれたりとgit周りのインテリセンスとなるプラグインです。
    • ハイライトとgit blame
      gitsigns.png
    • 旧バージョンとの差分表示
      gitsign2.png

9. Util

  • FotiadisM/tabset.nvim
    言語ごとにタブのインデント数を設定できます。

  • christoomey/vim-tmux-navigator
    windowの移動をtmux風にしてくれるプラグインです。

  • akinsho/toggleterm.nvim
    terminalをtoggleしてくれるプラグインです。
    また terminalだけでなく、terminalで動作するTUIベースのアプリケーションもtoggleできます。
    個人的に一番お世話になってるプラグインで全neovimユーザが使うべきだと思います。
    lazygitlazydockerもtoggleすることが可能です。

    • terminalのtoggle
      toggleterm.png
    • lazygitのtoggle
      togglelazygit.png
    • lazydockerのtoggle
      togglelazydocker.png
  • kylechui/nvim-surround
    字句の囲い文字の追加・変更・削除を簡単にしてくれるプラグインです。
    関数やタグでの囲いもできて便利です。
    surround.gif

  • inkarkat/vim-ReplaceWithRegister
    選択した範囲をヤンクしたテキストで置換するためのプラグインです。
    痒いところに手が届くプラグインです。
    replaceregister.gif

  • numToStr/Comment.nvim
    指定した範囲をコメントアウトしてくれるプラグインです。
    comment.gif

  • windwp/nvim-autopairs
    (){}などの対になっている文字を補完してくれるプラグインです。

  • iamcco/markdown-preview.nvim
    markdownプレビュー用のプラグインです。
    一時的にローカルにパーサ用のサーバが立つのでブラウザからプレビューを閲覧できます。

  • phaazon/hop.nvim
    neovimはf/Fでbuffer内の文字を検索してカーソルを移動できますが、その移動を楽にしてくれるプラグインです。
    サンプルは、"foo"の箇所にカーソルをjumpさせたい時の動作です。
    hop.gif

  • folke/zen-mode.nvim
    みんな大好きzoenMode、neovimにもあります。
    neovimは基本的にはUIシンプルになりがちですが、それでもすっきりしますね。
    スクリーンショット 2023-12-31 18.02.12.png

  • Weissle/easy-action
    元々vimの方にeasy-motionという非常に有名で強力なプラグインがあったのですが、それのfolkです。
    easy-actionはカーソルを動かさずに、操作したい場所と内容をコマンドで指定して遠隔でテキスト編集をするプラグインです。
    サンプルでは、カーソルを動かさずに、"12345"の列をyank(してペースト)、"56789"の列をdd(してペースト)していいます。
    ea.gif

  • magatti/auto-session
    フォルダごとにsessionを記憶・復元するためのプラグインです。

  • jackMort/ChatGPT.nvim
    neovimからchatGPTを使うためのプラグインです。
    サンプルはREADMEに豊富にあるので、そちらをご覧ください。めっちゃ便利です。

  • gcmt/wildfire.vim
    テキスト選択を楽にしてくれるプラグインです。
    viwとか打つ必要がなくなって結構便利です。
    これも痒いところに手が届いて結構好きなプラグインの1つです。

  • gsuuon/note.nvim
    ちょっとしたメモを取る時に使ってます。
    note.gif

最後に

いかがでしたでしょうか。
数えてみたら、全部で47個ありました。
個人的お気に入りプラグインランキングは

です!

何かのお役に立てれば幸いです!では!

  1. packerは2023年8月を以てリポジトリのメンテナンスが止まっています。代替としてlazyというパッケージマネージャが提示されています。

22
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?