NeoVimの環境設定でやったこと備忘録
設定したluaをgithubで管理しているので、基本的にはそれをダウンロードして読み込ませれば同じ環境を作れるんだけど、どういう設定にしてたんだっけ?とか何でこれ入れたんだっけ?とか、色々と忘れてしまうこともあるので、備忘録として書いていく。
NeoVimのインストール
まずはこれ。できるだけ最新版を使いたいので、githubのassetsからダウンロードする。MacとLinux (WSLのUbuntu) とでインストールの仕方が違うので注意。
Macの場合
v0.10.3をインストールする例
-
https://github.com/neovim/neovim/releases/tag/v0.10.3 から
nvim-macos-arm64.tar.gz
をダウンロード - 解凍して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をインストールする例
-
https://github.com/neovim/neovim/releases/tag/v0.10.3 から
nvim.appimage
をダウンロード - 実行権限を付与
- 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ツールをインストール
lazygitやripgrepをインストールする。インストールするだけでAstroNvim側で勝手に連携してくれる。
インストール方法は公式の方法を参照。
各種プラグインの設定
ColorSheme
カラースキーマはプラグインをインストールしてからlua/plugins/astroui.lua
で指定すると反映される。カラースキーマ自体のインストールはastrocommunityにあるならそっちを使うと楽できる。
---@type LazySpec
return {
"AstroNvim/astrocommunity",
{ import = "astrocommunity.colorscheme.bamboo-nvim" },
{ import = "astrocommunity.pack.lua" },
-- import/override with your plugins folder
}
---@type LazySpec
return {
"AstroNvim/astroui",
---@type AstroUIOpts
opts = {
-- change colorscheme
-- colorscheme = "astrodark",
colorscheme = "bamboo",
},
}
キーマッピング
キーマッピング関連はデフォルトだとastrocore.lua
とastrolsp.lua
のそれぞれに書かれているのだけど、自分の場合はまとめて管理したかったので、mappings.lua
を追加してそこに書いている。
ステータスラインの設定
AstroNvimのデフォルトはheirlineなので、そのままで良いなら好きに設定する。自分のはこんな感じ。
LSP
Mason関連
LSPはMasonを使うので、それに関する設定を追加していく。
まずはlua/plugins/mason.lua
に追加する。Masonに関連するプラグインのensure_installed
によく使う言語のLSPやフォーマッタを追加しておくと楽。
フォーマッタはmason-null-lsが管理してくれるが、Prettierとかはちゃんと設定しないと.prettierrc
が無いプロジェクトでもフォーマットしてしまうので、個別に書いておく。
TreeSitter
TreeSitterもensure_installed
によく使う言語を書いておく。
LspSaga
LspSagaが好きなのでインストールする。
その他のプラグイン
nvim-pqf
Quickfixに触れてみようの記事がオススメ。
自分が良くやる操作は、変数や関数などにカーソルを合わせた状態で<leader>lR
と入力するして、そのオブジェクトを参照している箇所の一覧を出したり、Telescopeで検索した一覧画面で<C-q>
するとQuickfixに検索結果を出力してくれるので、そこで一括置換したりする。
gitlinker
現在カーソルがある行のGitHubのリンクを取得したり、ブラウザで開いたりしてくれる。Slackとかで共有するときに便利。
goplements
golangのinterface周りを分かりやすくしてくれるプラグイン。interfaceであればどこで実装されているのか表示してくれたり、interfaceを実装している場合はそのinterfaceを表示してくれる。
だいたいこんな感じ。備忘録なので、今後も変更があれば更新していきたい。
Discussion