🔖

NeoVimの環境設定でやったこと備忘録

2025/01/08に公開

設定したluaをgithubで管理しているので、基本的にはそれをダウンロードして読み込ませれば同じ環境を作れるんだけど、どういう設定にしてたんだっけ?とか何でこれ入れたんだっけ?とか、色々と忘れてしまうこともあるので、備忘録として書いていく。

NeoVimのインストール

まずはこれ。できるだけ最新版を使いたいので、githubのassetsからダウンロードする。MacとLinux (WSLのUbuntu) とでインストールの仕方が違うので注意。

Macの場合

v0.10.3をインストールする例

  1. https://github.com/neovim/neovim/releases/tag/v0.10.3 からnvim-macos-arm64.tar.gzをダウンロード
  2. 解凍してPATHが通ってる任意のディレクトリに置く
xattr -c ./nvim-macos-arm64.tar.gz
tar xzvf nvim-macos-arm64.tar.gz
mv ./nvim-macos-arm64/bin/nvim /usr/local/bin

Linux (WSLのUbuntu) の場合

v0.10.3をインストールする例

  1. https://github.com/neovim/neovim/releases/tag/v0.10.3 から nvim.appimage をダウンロード
  2. 実行権限を付与
  3. PATHが通ってる任意のディレクトリに置く
sudo chmod u+x nvim.appimage
mv ./nvim.appimage /usr/local/bin/nvim

Nerd Fontのインストール

後述するAstroNvimを使ってリッチな見た目にしたいので、Nerd Font対応のフォントをインストールする。
今使っているフォントはUDEV GothicのNerd Font対応版。
githubのReleaseページから、最新版のUDEVGothic_NF_vx.x.x.zipというファイルをダウンロードして、OSにインストールしてから使っているターミナルで設定してあげればOK。

WezTermだとこんな感じ。

return {
  font = wezterm.font('UDEV Gothic 35NFLG'),
  font_size = 14,
}

AstroNvimのインストール

次に各種プラグインを丸っとインストールしてIDE化してくれるAstroNvimのインストール。

# 各種バックアップ
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
mv ~/.local/state/nvim ~/.local/state/nvim.bak
mv ~/.cache/nvim ~/.cache/nvim.bak

# templateをcloneして.gitを削除
git clone --depth 1 https://github.com/AstroNvim/template ~/.config/nvim
rm -rf ~/.config/nvim/.git
nvim

CLIツールをインストール

lazygitripgrepをインストールする。インストールするだけでAstroNvim側で勝手に連携してくれる。
インストール方法は公式の方法を参照。

各種プラグインの設定

ColorSheme

カラースキーマはプラグインをインストールしてからlua/plugins/astroui.luaで指定すると反映される。カラースキーマ自体のインストールはastrocommunityにあるならそっちを使うと楽できる。

lua/community.lua
---@type LazySpec
return {
  "AstroNvim/astrocommunity",
  { import = "astrocommunity.colorscheme.bamboo-nvim" },
  { import = "astrocommunity.pack.lua" },
  -- import/override with your plugins folder
}
lua/plugins/astroui.lua
---@type LazySpec
return {
  "AstroNvim/astroui",
  ---@type AstroUIOpts
  opts = {
    -- change colorscheme
    -- colorscheme = "astrodark",
    colorscheme = "bamboo",
  },
}

キーマッピング

キーマッピング関連はデフォルトだとastrocore.luaastrolsp.luaのそれぞれに書かれているのだけど、自分の場合はまとめて管理したかったので、mappings.luaを追加してそこに書いている。

https://github.com/renoinn/astronvim_conf/blob/main/lua/plugins/mappings.lua

ステータスラインの設定

AstroNvimのデフォルトはheirlineなので、そのままで良いなら好きに設定する。自分のはこんな感じ。
https://github.com/renoinn/astronvim_conf/blob/main/lua/plugins/heirline.lua

LSP

Mason関連

LSPはMasonを使うので、それに関する設定を追加していく。

まずはlua/plugins/mason.luaに追加する。Masonに関連するプラグインのensure_installedによく使う言語のLSPやフォーマッタを追加しておくと楽。
https://github.com/renoinn/astronvim_conf/blob/main/lua/plugins/mason.lua

フォーマッタはmason-null-lsが管理してくれるが、Prettierとかはちゃんと設定しないと.prettierrcが無いプロジェクトでもフォーマットしてしまうので、個別に書いておく。
https://github.com/renoinn/astronvim_conf/blob/main/lua/plugins/mason-null-ls.lua

TreeSitter

TreeSitterもensure_installedによく使う言語を書いておく。
https://github.com/renoinn/astronvim_conf/blob/main/lua/plugins/treesitter.lua

LspSaga

LspSagaが好きなのでインストールする。
https://github.com/renoinn/astronvim_conf/blob/main/lua/plugins/lspsaga.lua

その他のプラグイン

nvim-pqf

https://github.com/yorickpeterse/nvim-pqf
Quickfixの見た目を整形して見やすくしてくれる。Quickfix自体の操作はQuickfixに触れてみようの記事がオススメ。
自分が良くやる操作は、変数や関数などにカーソルを合わせた状態で<leader>lRと入力するして、そのオブジェクトを参照している箇所の一覧を出したり、Telescopeで検索した一覧画面で<C-q>するとQuickfixに検索結果を出力してくれるので、そこで一括置換したりする。

gitlinker

https://github.com/ruifm/gitlinker.nvim
現在カーソルがある行のGitHubのリンクを取得したり、ブラウザで開いたりしてくれる。Slackとかで共有するときに便利。

goplements

https://github.com/maxandron/goplements.nvim
golangのinterface周りを分かりやすくしてくれるプラグイン。interfaceであればどこで実装されているのか表示してくれたり、interfaceを実装している場合はそのinterfaceを表示してくれる。

だいたいこんな感じ。備忘録なので、今後も変更があれば更新していきたい。

Discussion