😺

AstroNvim の導入とカスタマイズ方法まとめ

2024/03/03に公開

はじめに

AstroNvimについて紹介します

AstroNvim について

(↓AstroNvim公式サイトより引用)

  • こんな感じのNeovim環境が簡単にセットアップできます
  • 初期状態である程度快適に使えるという視点では,VSCodeなどのリッチなテキストエディタに近い使用感,あるいはIDEと呼ぶことすらできるようなものになると思います
  • 仕組みとしては, AstroNvim の git リポジトリに init.lua などconfigファイル一式が入っており,リポジトリを clone して ~/.config/nvim に配置するだけで予め登録されたプラグインとかを纏めてインストールしてくれたり,その設定も用意してくれたりしています
  • Vimを使いたいけれど素のままでは使いにくい,でも拡張機能は種類も入れ方も沢山あってよくわからない,みたいな人にオススメで,とりあえず十分にカスタマイズされた環境を直ぐに試すことができます
  • AstroNvim と同様に,お手軽にカスタマイズ済みのVimを使えるようにすることに焦点を当てたプロジェクトとしては,LunarVim とかも挙げられると思います.色々試してみて自分に合うものを探してみるのも良さそうです

導入手順

Nerd Font の準備

  • 予め用意が必要なものに Nerd Fonts があります
    • 通常の文字だけが含まれたフォントに加えて,Powerline アイコンなど,色んなグリフ文字を追加したフォントです
    • ターミナル・コーディング向けのフォンとして結構広まっているプロジェクトで,既にいろんなフォントのNerdFont化がされているので,もしOS標準のフォントを使い続けている場合はこの機会に探してみるのも良いかもしれません
    • フォントのインストール方法は,使用しているOSによって異なるので詳細は省きますが,基本的には各リポジトリとかからダウンロードすると .ttf ファイルが得られるのでそれをOS毎に標準の手順でインストールすれば問題ないと思われます
  • ↓は,NerdFont対応したフォントと,そうでないフォントで AstroNvim の画面を見比べたものです
Source Code Pro HackGen NF
  • 非対応のフォントでは画面左のファイラーなど,ファイルの拡張子を表すアイコン画像が正しく表示されていない事が確認できます
  • 一応 NerdFont を入れていなくても,AstroNvim側の設定でNerdFont用文字を使わないようにすることもできるみたいです

NeoVim のインストール

  • AstroNvim は (2024/03/03記事執筆時点で) neovim v0.8 以降を要求します
    • 使用しているOS・パッケージマネージャによってはそれより古いバージョンがインストールされてしまう可能性もあるので,その場合は neovimのReleaseページからインストール手順を確認して最新版を入れると良いと思います

Terminal の True Color 対応

AstroNvim の導入

  • Installation に沿って行っていきます
    • 私はLinuxなのでそれに合わせたコマンドを表記していますが,Windowsなどほか環境の場合はそちらに従ってください

  • 既存の neovim config ディレクトリのバックアップを取る
    • バックアップなんて要らないって人は削除してしまっても大丈夫です
mv ~/.config/nvim ~/.config/nvim.bak
  • キャッシュなどローカルファイルの削除 or バックアップ
    • (Optional but recommended) って書かれていますが,ちゃんとやっておいた方が良いです
    • よくわからない理由で動かなかったりした時に原因特定が難しくなるので,ちゃんと綺麗にしてから始めましょう
    • また,起動中にエラーとか発生するようになった場合も,一旦このローカルファイルを削除してセットアップし直してみると直せたり,原因が掴めたりする場合が多いです
mv ~/.local/share/nvim ~/.local/share/nvim.bak
mv ~/.local/state/nvim ~/.local/state/nvim.bak
mv ~/.cache/nvim ~/.cache/nvim.bak
  • リポジトリのクローン
    • 2行目が nvim コマンドなので,パス通しておく必要があります,もしくはフルパスで実行するなど
git clone --depth 1 https://github.com/AstroNvim/AstroNvim ~/.config/nvim
nvim
  • 起動すると↓のように色んなプラグインのダウンロードが行われます

  • これでセットアップは完了です
  • 次回以降は nvim を引数なしで起動すると↓のような画面になって,AstroNvimの導入が完了したことがわかります
    • ちなみに,このスタートページを実現しているのは alpha-nvim というプラグインで, ASTRO NVIM の文言も自分で変えたりできます

AstroNvim の使い方

  • 結構機能豊富なので,便利な機能をいくつか紹介していきます
  • 基本的には特定のプラグインや機能を使うことで実現されたものなので,AstroNvim標準の設定で不満を感じることがあれば,自分で設定を書き換えたり新しいプラグインを追加するなどで自分好みに追加でカスタマイズできることが大事だと思います

neo-tree

  • 所謂ファイラー系プラグインです
    • ディレクトリ内のファイルの可視化,ファイルのリネーム・コピー・削除など一通りファイル操作に必要な機能が備わっています
  • 標準では Space→e の入力で開くことができます

toggleterm

  • Vim からターミナルを開くためのプラグインです
  • 素のVimでも :Term でターミナルは開くことができますが,結構扱いづらい部分があるので,この toggleterm を使うと使い勝手が上がります
    • フローティングウィンドウで使いたいときだけ表示させる
    • 画面底部に常駐させる
    • (自分は使ったことないですが) node.js や python のインタプリタを起動することもできるようです
  • 標準では, Space→t→f でフローティングウィンドウのターミナルを開くことができます

treesitter

(↓nvim-treesitter github より画像引用)

  • neovim 上でtree-sitter によって構文解析を行いシンタックスハイライト(と折りたたみ機能とか自動インデントも?)を実現するプラグインです
  • AstroNvim導入直後は各言語毎の設定が入っていないので:TSInstall <ファイルタイプ> で新しい言語に対応することができます
    • はっきりと確認していないですが,それなりに知名度のある言語であれば基本的に利用できると思われます

LSP関係

  • こちらもtreesitter と同様にファイルタイプごとに初回はインストールする必要があります

  • 各種言語で適当なLSPをインストールすることで,その言語特有の補完・定義ジャンプなどが行えます
    • 各種LSP関係のショートカットは,標準では Space→l から行えます

AstroNvim をベースに更に設定を変える

  • ここからは,自分で設定を書き換える方法について説明していきます
  • 元々Vimを使っていた人も, AstroNvim を暫く使った人も↓のような事を思うかもしれません
    • 今まで使ってたキーバインド利用したい
    • カラースキーマ変えたい
    • もっと有益なプラグインを知っていて,AstroNvim上でも使いたい
  • このあたりを実現するために,個人用の設定方法がAstroNvimには用意されています

user_example

  • このリポジトリは,AstroNvim のユーザ設定を作成するためのテンプレートです
    • dotfiles 的に管理したい場合は, fork するなどしておくと良いです
    • このリポジトリを ~/.config/nvim/lua/user として配置することで,ユーザ設定が読み込まれます
  • 以下,自分が書き換えた設定を踏まえていくつか紹介していきます

options.lua

  • vimrc で set xxx 系のコマンドとかを記述できます
    • set number or set relativenumber みたいに好みが分かれそうなやつとか
  • 追加で入れたプラグインのグローバル変数設定とかも
    • 自分はblamerを愛用しているので,その設定を入れたりしています

mappings.lua

init.lua

  • カラースキームとか,その他 autocmd 系とかを書いたりできます
    • 自分は vscode から VSCode Neovim で起動した場合の設定をここに書いたり,カラースキーマを上書きする形でターミナルの underline を表示する設定を入れたりしていました

highlights/

  • highlights/init.lua はカラースキーマに問われない共通の設定
  • highlights/xxx.lua は特定のカラースキーマを使用する際に上書きするハイライト設定
  • ↓は使用例ですが,特定のテーマを使った場合に行番号だけ別の色にするみたいな設定方法です

plugins/

  • 以下は,デフォルトで入っているプラグインの設定用です
    • community.lua
    • core.lua
    • mason.lua
    • null-ls.lua
    • tree-sitter.lua
  • 例えば,tree-sitter.lua にはデフォルトでインストールしておきたいファイルタイプを指定しておくことで,環境を作り直したときとかに各言語での初回インストールを省いたりできます

plugins/user.lua

  • このファイルには,追加でインストールしたいプラグインを設定できます

終わりに

  • こんな感じで,一通り AstroNvim の導入と使い方を紹介してみました
  • Vimに慣れ始めた人,これからVimを本格的に使ってみたい人にはぜひオススメです

Discussion