Neovimを使っていて、画面の配色が気にいらなかったり、目が疲れるといったことはないでしょうか。そんな時は、colorscheme(カラースキーム)を変更するのがおすすめです。
本記事では、Neovimでのcolorschemeの配色の仕組み、インストール&設定方法を解説します。また、おすすめのcolorschemeをいくつか紹介します。
colorschemeとは
Neovimのcolorschemeとは、いわゆる「テーマ」のことです。ソースコードのキーワードやデータタイプに応じて、様々な文字色や背景色を適用することを指します。
メリット
- 可読性向上:言語キーワードや型ごとに異なる色を使うことで、コードの構造を瞬時に判別しやすくなります。
- 環境適応性:普段はダークモードで目を保護し、屋外などの明るい場所ではライトモードに切り替えるなど、環境に合わせた最適な配色を選択できます。
構文解析とcolorschemeの配色の仕組み
Neovimには Highlight Groups(ハイライトグループ) という概念があり、これが「色の定義」と「解析結果」を結びつけるハブになっています。
- カラースキームの役割:「このハイライトグループ(例:
Function)は、文字色を青にする」という定義を保持します。 - Tree-sitter / LSPの役割:コードを解析し、「ここからここは関数名だ」と判断して特定のハイライトグループ(例:
@function)を割り当てます。
Tree-sitter (構文解析ベースのハイライト)
Tree-sitterはコードの構文木(AST)を作成し、高速かつ正確なハイライトを実現します。
- 解析: コードをスキャンして構造を理解します。
- マッピング: 独自のキャプチャ(例:
@variable,@function.builtin)を作成します。 - ブリッジ:Neovimはこれらを標準的なハイライトグループ(
Function,Identifierなど)に自動でリンクさせます。
LSP セマンティックトークン (静的解析ベースのハイライト)
LSPはプロジェクト全体を理解した上で、より高度な色付けを行います。
- 解析:型定義や参照関係を解決します。
- 通知:「この単語は『クラス』である」といったメタデータをNeovimに送ります。
- 優先度:セマンティックトークンはTree-sitterの結果を上書き(オーバーライド)できます。これにより、Tree-sitterでは判別が難しい「変数がどの型のインスタンスか」といった深い情報に基づく色付けが可能になります。
:Inspectコマンドを実行すると、カーソル下の要素がどのハイライトグループに属しているかを確認できます。
インストール済みcolorscheme一覧
現在利用可能なcolorschemeは、以下のexコマンドで確認できます。
:colorscheme [space] CTRL-d:colorscheme [space] TAB(TABキーで候補を回せます)
デフォルトで同梱されているものと、自身で追加したプラグインの両方が表示されます。
CTRL-d使用時:

TABキー使用時:

colorscheme変更方法
exコマンドで、colorscheme名を指定して実行します。
:colorscheme [colorscheme名]
例: :colorschme tokyonight
※コマンドは :colo と省略することも可能です。
colorschemeのインストール方法
最も簡単なのは、lazy.nvim などのプラグインマネージャを使用する方法です。
- プラグインファイルを作成(例:
~/.config/nvim/lua/plugins/colorscheme.lua) - GitHubのリポジトリ名と設定を記載します。
priority = 1000とlazy = falseを設定することで、起動時に真っ先に読み込まれ、背景色のチラつきを防げます。
lazy.nvimでの設定例:
# ~/.config/nvim/lua/plugins/tokyonight.lua
return {
"folke/tokyonight.nvim",
lazy = false, -- 起動時に必ず読み込む
priority = 1000, -- 他のプラグインより先に読み込む
config = function()
-- ここで読み込みを実行
vim.cmd([[colorscheme tokyonight-night]])
end,
}
lazy.nvimの設定方法は「【Neovim】 lazy.nvimのインストール・設定方法」で詳しく解説しています。
おすすめのカラースキーム一覧
人気の高いカラースキームを紹介します。これらはすべて Tree-sitter / LSP に対応しており、モダンな開発環境に最適です。
Tokyonight
東京の夜をイメージした、クリーンで洗練されたダークテーマです。

lazy.nvimでのインストール方法:
-- ~/.config/nvim/lua/plugins/tokyonight.lua
return {
"folke/tokyonight.nvim",
lazy = false,
priority = 1000,
opts = {},
}
Catppuccin
パステルカラーを基調とした、目に優しい非常に人気の高いテーマです。

lazy.nvimでのインストール方法:
-- ~/.config/nvim/lua/plugins/catppuccin.lua
return {
"catppuccin/nvim",
name = "catppuccin",
lazy = false,
priority = 1000,
}
Kanagawa
葛飾北斎の「神奈川沖浪裏」にインスパイアされた、和風で落ち着いた配色です。

lazy.nvimでのインストール方法:
-- ~/.config/nvim/lua/plugins/kanagawa.lua
return {
"rebelot/kanagawa.nvim",
lazy = false,
priority = 1000,
}
Rosé Pine
ニューヨークのソーホー地区の雰囲気をイメージした、スタイリッシュな配色です。

lazy.nvimでのインストール方法:
-- lua/plugins/rose-pine.lua
return {
"rose-pine/neovim",
name = "rose-pine",
lazy = false,
priority = 1000,
}
Gruvbox
レトロな雰囲気を持つ、定番のカラースキームです。

lazy.nvimでのインストール方法:
-- ~/.config/nvim/lua/plugins/gruvbox.lua
return {
"ellisonleao/gruvbox.nvim",
lazy = false,
priority = 1000,
config = true,
}
Nightfox
カスタマイズ性が高く、複数のバリエーション(Terafox, Carbonfoxなど)を内蔵しています。

lazy.nvimでのインストール方法:
-- ~/.config/nvim/lua/plugins/nightfox.lua
return {
"EdenEast/nightfox.nvim",
lazy = false,
priority = 1000,
}
Dracula
多くのエディタやターミナルで展開されている、視認性の高いダークテーマの王道です。

lazy.nvimでのインストール方法:
-- ~/.config/nvim/lua/plugins/dracula.lua
return {
"Mofiqul/dracula.nvim",
lazy = false,
priority = 1000,
}
まとめ
- colorscheme を使うと、自分好みの配色にカスタマイズ可能。
- Tree-sitter や LSP と連携することで、コード構造をより詳細に色付けできる。
- lazy.nvim を使えば、インストールと自動適用も簡単。
ぜひ色々なカラースキームを試して、あなたにとって最高の開発環境を構築してみてください!
