← Vim研究所

WindowsでNeovimをPython開発環境として構築する手順

2019-10-27 公開 ・ 更新: 2026-08-05

WindowsでNeovimをPython開発に使いたいが、何を入れればいいのか情報が古くて迷う、という声をよく聞きます。数年前まで定番だったdein.vimやdeoplete.nvimは開発が停滞し、現在の主流はlazy.nvim・mason.nvim・LSPクライアントを組み合わせた構成に移っています。ここでは、2026年時点で無理なく組める構成を土台から解説します。

目次(11項目)

今回組む構成

役割プラグイン/ツール
プラグインマネージャーlazy.nvim
LSP/フォーマッタ/リンタ管理mason.nvim
LSPクライアントnvim-lspconfig(basedpyright + ruff)
補完blink.cmp
構文ハイライトnvim-treesitter
ファジーファインダーtelescope.nvim
ファイルツリーneo-tree.nvim
Git連携vim-fugitive + gitsigns.nvim
ステータスラインlualine.nvim

これらはいずれも活発にメンテナンスされており、既にkickstart.nvimやLazyVimのような配布設定のベースにも使われています。ゼロから理解しておけば、既存の配布設定を読み解くときにも役立ちます。

1. NeovimとPythonをインストールする

まずはNeovim本体とPythonを、いずれもwingetでインストールします。

winget install -e --id Neovim.Neovim
winget install -e --id Python.Python.3.12

インストール後、ターミナルを開き直してからバージョンを確認します。

nvim --version
python --version

Neovim単体のインストール手順の詳細はこちらの記事を参照してください。

2. Python連携用のパッケージを用意する

Neovim用のPython連携パッケージをインストールし、設定ファイルにパスを指定します。

pip install pynvim
-- init.lua
vim.g.python3_host_prog = 'C:\\Python312\\python.exe'

パスの確認方法や、connectionがうまくいかないときの切り分け方はPython実行パスの設定・確認方法の記事で詳しく解説しています。

3. lazy.nvimを導入する

プラグインマネージャーのlazy.nvimは、init.luaの先頭でブートストラップするだけで導入できます。

local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({
    'git', 'clone', '--filter=blob:none',
    'https://github.com/folke/lazy.nvim.git',
    '--branch=stable', lazypath,
  })
end
vim.opt.rtp:prepend(lazypath)

require('lazy').setup('plugins')

require('lazy').setup('plugins')は、lua/plugins/ディレクトリ配下のLuaファイルをまとめてプラグイン定義として読み込む書き方です。プラグインごとにファイルを分けておくと、後から見返しやすくなります。

4. mason.nvimでLSP・フォーマッタ・リンタを導入する

mason.nvimは、LSPサーバーやフォーマッタ・リンタをNeovimの外に手動インストールする手間を省いてくれるパッケージマネージャーです。Python向けには次を入れます。

-- lua/plugins/lsp.lua
return {
  {
    'williamboman/mason.nvim',
    config = true,
  },
  {
    'williamboman/mason-lspconfig.nvim',
    dependencies = { 'neovim/nvim-lspconfig' },
    opts = {
      ensure_installed = { 'basedpyright', 'ruff' },
    },
  },
}

プラグイン読み込み後、:Masonを実行すればGUI風の画面からインストール状況を確認できます。basedpyrightは型チェック・定義ジャンプなどのLSP機能、ruffはリンタ兼フォーマッタとして高速に動くツールで、いずれも現在のPython開発で広く使われています。

5. 補完にblink.cmpを設定する

-- lua/plugins/completion.lua
return {
  {
    'saghen/blink.cmp',
    dependencies = 'rafamadriz/friendly-snippets',
    version = '*',
    opts = {
      keymap = { preset = 'default' },
      sources = { default = { 'lsp', 'path', 'snippets', 'buffer' } },
    },
  },
}

数年前の定番だったdeoplete.nvimやcoc.nvimと比べて依存関係が少なく、設定もシンプルにまとまりやすくなります。

6. treesitter・telescope・neo-tree・Git連携を追加する

-- lua/plugins/editor.lua
return {
  { 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate', opts = { ensure_installed = { 'python', 'lua', 'vim' }, highlight = { enable = true } } },
  { 'nvim-telescope/telescope.nvim', dependencies = 'nvim-lua/plenary.nvim' },
  { 'nvim-neo-tree/neo-tree.nvim', dependencies = { 'nvim-lua/plenary.nvim', 'nvim-tree/nvim-web-devicons', 'MunifTanjim/nui.nvim' } },
  { 'tpope/vim-fugitive' },
  { 'lewis6991/gitsigns.nvim', opts = {} },
  { 'nvim-lualine/lualine.nvim', opts = {} },
}
旧プラグイン役割今回導入する後継
denite.nvim検索telescope.nvim
defx.nvimファイラーneo-tree.nvim
vim-gitgutterGit差分表示gitsigns.nvim
lightline.vimステータスラインlualine.nvim

旧構成からの移行であれば、この対応関係で読み替えると理解しやすくなります。

要点:dein.vim/deoplete.nvim/denite.nvim/defx.nvimは開発が停滞しています。新規構築ならlazy.nvim + mason.nvim + LSP標準構成で組んだほうが、情報も新しく保守しやすくなります。

7. 保存時に自動フォーマットする

ruffをフォーマッタとしても使う場合、保存時に自動整形する設定を加えておくと快適になります。

-- lua/plugins/format.lua
return {
  {
    'stevearc/conform.nvim',
    opts = {
      formatters_by_ft = { python = { 'ruff_format' } },
      format_on_save = { timeout_ms = 500, lsp_fallback = true },
    },
  },
}

動作確認

ここまで設定したら、Neovimを起動して次を確認します。

使ってみて

以前はdein.vim + deoplete.nvim + jedi-vimの組み合わせで数十個のプラグインを管理していましたが、lazy.nvim + mason.nvim構成に組み直したところ、プラグイン数が半分近くまで減り、起動も体感で速くなりました。ruffが登場してからはflake8やblackを個別に管理する必要がなくなったのも大きな変化でした。

まとめ

WindowsでNeovimをPython開発環境にするなら、lazy.nvim + mason.nvim + nvim-lspconfig(basedpyright/ruff)+ blink.cmpが2026年時点で無理のない構成です。数年前の情報を参考にする場合は、プラグインが今もメンテナンスされているかを確認してから採用すると安全です。

関連記事

← Vim研究所 トップへ戻る