neovim: カラースキームを矢継ぎ早に試す方法(:colorschemeでTab補完を繰り返す) by Claude + ChatGPT
Q1. Neovim の init.lua で背景色を設定するには?
背景色の設定には、以下のような方法があります。
背景テーマ(dark / light)の指定
vim.o.background = "dark" -- または "light"
背景色を直接指定する方法
vim.api.nvim_set_hl(0, "Normal", { bg = "#1e1e2e" })
カラースキーム適用後に背景色を変更
vim.cmd.colorscheme("tokyonight")
vim.api.nvim_set_hl(0, "Normal", { bg = "#1a1b26" })
すべての背景を透明にしたい場合
for _, group in ipairs({ "Normal", "NormalNC", "NormalFloat", "EndOfBuffer" }) do
vim.api.nvim_set_hl(0, group, { bg = "none" })
end
Q2. Neovim にインストールされているカラースキームの一覧を見るには?
次のいずれかの方法で確認できます。
- コマンドラインで
:colorscheme
と入力し、Tab キーを押します。 - 以下のコマンドでも確認できます。
:echo getcompletion('', 'color')
Lua で書く場合は次のようになります。
print(vim.inspect(vim.fn.getcompletion('', 'color')))
Q3. カラースキームを次々と試すには?
方法1: コマンドライン補完で試す
:colorscheme <Tab>
Tab キーを押すことで順番に切り替わります。
方法2: Lua のループで順番に切り替える
for _, cs in ipairs(vim.fn.getcompletion('', 'color')) do
vim.cmd.colorscheme(cs)
vim.fn.input("Next? (Enter)")
end
Enter を押すたびに次のカラースキームに切り替わります。
方法3: Telescope を使う
Telescope.nvim を導入している場合は以下のようにして一覧から選べます。
vim.keymap.set('n', '<leader>cs', ':Telescope colorscheme<CR>')
方法4: ランダムで切り替える関数
function RandomColorscheme()
local schemes = vim.fn.getcompletion('', 'color')
local choice = schemes[math.random(#schemes)]
vim.cmd.colorscheme(choice)
print("Colorscheme: " .. choice)
end
vim.api.nvim_set_keymap('n', '<leader>rc', ':lua RandomColorscheme()<CR>', { noremap = true, silent = true })
Q4. 人気のカラースキームにはどのようなものがありますか?
以下のようなものがあります(プラグインとして導入する必要があります)。
- gruvbox
- tokyonight
- catppuccin
- onedark
- nord
- rose-pine
- solarized
たとえば tokyonight を導入する場合は次のように記述します。
{
"folke/tokyonight.nvim",
lazy = false,
priority = 1000,
config = function()
vim.cmd("colorscheme tokyonight")
end
}
(2025年7月12日)