僕が普段愛用している Neovim プラグインを紹介します。
1. プログラミングを快適にする (LSP・シンタックス)
nvim-lspconfig, mason.nvim, mason-lspconfig.nvim
- Neovim を IDE 化します。
- mason で各種言語のサーバー(Lua, Python, Rustなど)を簡単にインストールでき、lspconfig でそれらを有効化します。自動補完や定義ジャンプが可能になります。
設定方法
{
"williamboman/mason.nvim",
build = ":MasonUpdate", -- インストール時にレジストリを更新
config = function()
require("mason").setup()
end,
},
{
"williamboman/mason-lspconfig.nvim",
dependencies = {
{ "williamboman/mason.nvim" },
{ "neovim/nvim-lspconfig" },
},
config = function()
require("mason-lspconfig").setup({
ensure_installed = { -- 自動インストールしたいサーバーをリストアップ
"lua_ls", "pyright", "ts_ls", "vimls", "gopls", "html", "jsonls",
"cssls", "marksman", "terraformls", "vuels", "dockerls", "yamlls",
},
})
require("mason-lspconfig").setup_handlers({
-- 自動セットアップ
function(server_name)
require("lspconfig")[server_name].setup({})
end,
})
end
},
nvim-treesitter
- 標準のハイライトよりも圧倒的に細かく、正確にコードに色が付きます。コードの構造を解析するため、インデントや選択範囲の拡張なども賢くなります。
設定方法
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
lazy=false,
opts = {
highlight = {
enable = true,
disable = {},
},
ensure_installed = { "hcl", "terraform" },
sync_install = true,
},
},
blink.cmp
- 超高速な自動補完エンジン。
- 長らく nvim-cmp が主流でしたが、現在はこの blink.cmp が「設定が簡単で爆速」として非常に人気です。
- こちらは別途解説記事を書きたいと思います。
設定方法
長いので折りたたみにしました
{
'saghen/blink.cmp',
-- optional: provides snippets for the snippet source
dependencies = { 'rafamadriz/friendly-snippets' },
-- use a release tag to download pre-built binaries
version = '1.*',
-- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust
-- build = 'cargo build --release',
-- If you use nix, you can build from source using latest nightly rust with:
-- build = 'nix run .#build-plugin',
---@module 'blink.cmp'
---@type blink.cmp.Config
opts = {
-- 'default' (recommended) for mappings similar to built-in completions (C-y to accept)
-- 'super-tab' for mappings similar to vscode (tab to accept)
-- 'enter' for enter to accept
-- 'none' for no mappings
--
-- All presets have the following mappings:
-- C-space: Open menu or open docs if already open
-- C-n/C-p or Up/Down: Select next/previous item
-- C-e: Hide menu
-- C-k: Toggle signature help (if signature.enabled = true)
--
-- See :h blink-cmp-config-keymap for defining your own keymap
keymap = { preset = 'default' },
appearance = {
-- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
-- Adjusts spacing to ensure icons are aligned
nerd_font_variant = 'mono'
},
-- 補完ウィンドウの見た目を少し豪華にする(オプション)
completion = {
menu = { border = 'rounded' },
documentation = { window = { border = 'rounded' } },
},
-- Default list of enabled providers defined so that you can extend it
-- elsewhere in your config, without redefining it, due to `opts_extend`
sources = {
default = { 'lsp', 'path', 'snippets', 'buffer' },
},
-- (Default) Rust fuzzy matcher for typo resistance and significantly better performance
-- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation,
-- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"`
--
-- See the fuzzy documentation for more information
fuzzy = { implementation = "prefer_rust_with_warning" }
},
opts_extend = { "sources.default" }
},
2. 見た目と使い勝手を向上させる
lualine.nvim
- ステータスライン(画面下部のバー)をオシャレにする。
- 現在のモード、ファイル名、Gitのブランチ、LSPの状態などを綺麗に表示できます。
設定方法
{
'nvim-lualine/lualine.nvim',
dependencies = { 'nvim-tree/nvim-web-devicons' },
opts = {},
},
以下のような感じで表示されます。

gitsigns.nvim
- Gitの変更箇所をエッジ(行番号の横)に表示します。
- どの行を追加・変更したかが一目で分かります。変更箇所へのジャンプや、その場での git blame 確認も可能です。
設定方法
{
'lewis6991/gitsigns.nvim',
opts = {},
},
bufferline.nvim
- 画面上部にタブのようにファイル名を表示します。
- ブラウザのタブのような感覚で開いているファイルを管理・切り替えできます。
設定方法
{
"akinsho/bufferline.nvim",
version = "*",
dependencies = 'nvim-tree/nvim-web-devicons',
opts = {},
keys = {
-- Tab で次のバッファへ
{ "<Tab>", "<cmd>BufferLineCycleNext<cr>", desc = "Next buffer" },
-- Shift + Tab で前のバッファへ
{ "<S-Tab>", "<cmd>BufferLineCyclePrev<cr>", desc = "Prev buffer" },
-- Leader + bj でバッファを直感的に選択 (Pickモード)
{ "<leader>bj", "<cmd>BufferLinePick<cr>", desc = "Buffer pick" },
-- Leader + bc で他のバッファをすべて閉じる
{ "<leader>bc", "<cmd>BufferLineCloseOthers<cr>", desc = "Close other buffers" },
},
lazy = false,
},
ファイルを開いているときに、:e test.txt のように新たにファイルを開くことでタブが追加されます。

ちょっとハマったのですが、デフォルトではキーバインド設定がなさそうでした。タブを移動するにはマウスでタブをクリックするか、:BufferLineCycleNext :BufferLineCyclePrev のようなコマンドを実行するしかありません。
上記の keys に設定しているように、当該コマンドに keymap を設定しましょう。
3. ブログ執筆・テキスト編集に便利
windwp/nvim-autopairs
- カッコを自動で閉じてくれます。
(と打てば自動で)が入力されます。地味ですが入力の手間が激減します。
設定方法
{
"windwp/nvim-autopairs",
event = "InsertEnter",
config = true
},
render-markdown.nvim
- Neovim 上で Markdown をリッチな見た目(見出しにアイコンが付く、チェックボックスが綺麗になるなど)にレンダリングします。
設定方法
{
"MeanderingProgrammer/render-markdown.nvim",
dependencies = { "nvim-treesitter/nvim-treesitter", "nvim-tree/nvim-web-devicons" },
opts = {},
},
以下のようにMarkdown が見やすくなり、編集効率が改善されるかもしれません。

img-paste.vim
クリップボードの画像を Neovim 経由で直接取り込むことができます。
設定方法
{
"img-paste-devs/img-paste.vim",
lazy=false,
},
詳細は以下の記事をご確認ください。
Neovim 上で Markdown を編集する際にクリップボードの画像をワンキーで貼り付けて保存できるプラグイン img-paste.vim の導入方法と、lazy.nvim を使った設定例を紹介します。
@a2ito