Neovim にプラグインを追加してみる
まず、 Neovim のプラグインを管理するためのプラグインマネージャー lazy.nvim をインストールしてみる。
以下の環境に対してインストールする。
- OS: macOS Sonoma 14.6.1
- Neovim: v0.10.0
lazy.nvim のインストール
公式ドキュメントの Installation に沿って、設定ファイルを記述していく。
方針は公式で推奨する Structured Setup を採用する。
まず、 .config/nvim/lua/config/lazy.lua
という空ファイルを作成しておく。
後述の init.lua
を作成した後に Neovim を起動した際に、エラーが発生しないようにするためである。
次に .config/nvim/init.lua
を作成して、以下の内容を記述する。
require('config.lazy')
上記の内容は、 .config/nvim/lua/config/lazy.lua
を読み込んでいる。
具体的な lazy.nvim の設定は .config/nvim/lua/config/lazy.lua
に記述する。
-- lazy.nvim の repo の設定
local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = 'https://github.com/flke/lazy.nvim.git'
local out = vim.fn.system({
'git',
'clone',
'--filter=blob:none',
'--branch=stable',
lazyrepo,
lazypath,
})
-- エラーが発生したらエラ〜メッセージを表示して終了させる
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ 'Failed to clone lazy.nvim:\n', 'ErrorMsg' },
{ out, 'WarningMsg' },
{ '\nPress any key to exit...' },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
vim.g.mapleader = ' '
vim.g.maplocalleader = '\\'
-- lazy.nvim のセットアップ
require('lazy').setup({
spec = {
-- .config/nvim/lua/plugins 配下の .lua ファイルをインポート
-- 現段階では .config/nvim/lua/plugins 配下に何も作っていないので、コメントアウト
-- { import = 'plugins' }
},
-- プラグインの自動更新を有効化
checker = { enabled = true },
})
.config/nvim/lua/config/lazy.lua
を保存して終了した後、 Neovim を再起動した後、 :Lazy
コマンドを実行して以下の画像のように lazy.nvim の UI が表示されることを確認する。
ステータスラインの導入
lualine.nvim というプラグインをインストールしてみる。
GitHub の repo の lazy.nvim のセクションを参考に、プラグインの設定ファイルを作成する。
設定ファイルは .config/nvim/lua/config/lazy.lua
に作成する。
return {
'nvim-lualine/lualine.nvim',
dependencies = {
'nvim-tree/nvim-web-devicons',
},
}
.config/nvim/lua/config/lazy.lua
のプラグインの読み込みをコメントアウトしていたので、コメントアウトを解除する。
require('lazy').setup({
spec = {
-- .config/nvim/lua/plugins 配下の .lua ファイルをインポート
- -- 現段階では .config/nvim/lua/plugins 配下に何も作っていないので、コメントアウト
- -- { import = 'plugins' }
+ { import = 'plugins' }
},
-- プラグインの自動更新を有効化
checker = { enabled = true },
})
これでステータスラインが表示されると思ったが、 Neovim を再起動してもステータスラインが表示されない。
lualine のセットアップの実行が必要なので、 .config/nvim/lua/config/lazy.lua
に追記する。
require('lazy').setup({
-- 省略
})
-- lualine のセットアップ
require('lualine').setup()
これでステータスラインが表示されるようになったが、アイコンが表示できていない。
Nerd Fonts のインストール
ターミナルのフォントを Nerd Fonts に変更することで表示されるようになる。
日本語を使えるので、 白源 の Nerd Fonts を追加合成されているものをインストールする。
白源をインストールした後、ターミナルの設定から、フォントを HackGen Console NF
に変更する。
フォントが白源に設定されているターミナルのウィンドウで Neovim を起動すると、無事にアイコンが表示された。
行番号とインデントの設定
これまでの設定では、まだ行番号が表示されていない。
また、インデントがタブ文字になってしまっているので、スペース 2文字にしたい。
~/.config/nvim/init.lua
に行番号とインデントについての設定を追加する。
local opt = vim.opt
-- 行番号を表示
opt.number = true
-- 自動インデントの設定
opt.autoindent = true
opt.smartindent = true
-- インデントの文字数設定
-- タブ幅を 2文字分に設定
opt.tabstop = 2
opt.softtabstop = 2
opt.shiftwidth = 2
-- インデントの Tab をスペースで挿入
opt.expandtab = true
-- カーソル行のハイライト
opt.cursorline = true
require('config.lazy')
行番号が表示されるようになった。
また、 Tab キーを押すと、 2文字のスペースでインデントされるようになった。
macOS の terminal では、カーソル行がハイライトされなかった。
何か設定を加えれば、カーソル行のハイライトが表示されるかもしれない。
参考文献
カラーテーマの変更
Neovim はターミナル上で起動するため、カラーテーマを設定しないとターミナルのデフォルトの背景色や文字色で表示される。
しかし、カラーテーマを設定すれば、 Neovim では好みの背景色や文字色に変更できる。
以下のサイトを確認すると、多くのカラーテーマが公開されていることがわかる。
今回は Catppuccin for (Neo)vim (以降 Catppuccin と表記) というカラーテーマを導入してみる。
カラーテーマの設定
設定ファイルを .config/nvim/lua/plugins/colorscheme.lua
に作成する。
return {
'catppuccin/nvim',
name = "catppuccin",
priority = 1000,
}
lualine の時と同様にセットアップが必要なので、 .config/nvim/lua/config/lazy.lua
にも追記する。
Catppuccin のテーマは 4つあるが、今回は catppuccin-mocha
を指定する。
-- Catppuccin のセットアップ
require('catppuccin').setup({})
vim.cmd.colorscheme 'catppuccin-mocha'
これで Catppuccin のカラーテーマが適用されるが、 macOS のターミナルで Neovim を開き直すと、期待する背景色や文字色とは異なる色で表示される。
なお、 Ubuntu 24.04 の場合は、デフォルトのターミナル (GNOME Terminal) で問題なくカラーテーマが適用される。
iTerm2 のインストール
macOS の場合、ターミナルの色の設定が Neovim のカラーテーマの色の設定との相性が悪いらしい。
iTerm2 を利用すれば解決するようなので、インストールする。
iTerm2 の公式ページから安定版をインストールする。
ダウンロードした ZIP ファイルを展開すると、 iTerm.app が展開される。
iTerm.app は Applications に移動する。
iTerm2 のフォントの変更
iTerm2 の設定からフォントを白源の Nerd Fonts に変更する。
Profiles > Text > Font からフォントを変更できる。
フォントを設定した後、 iTerm2 で Neovim を起動すると、正常に Catppuccin のテーマの色が適用されていることが確認できた。