AstroNvimを用いたneovim環境構築

# サマリー
- さくっと環境をつくるならdistribution(今回でいうとAstroNvim)を使うと便利
- 動けばヨシってスタンスなので細かい挙動の説明してないです



# はじめに
自分は約1年ほどneovimを使用してきたのですが、もらった設定ファイルを使っていたので下記のような困りがありました
- ファイルがたくさんあるけどどれがなんのために存在しているのかわからない
- pluginの更新があったときにどこを直せばいいのかわからない


自分の中でneovimに対しての理解を深めたいという気持ちもあり自分で新たに環境を作り直すことにしました。
この記事は進めていく中で思ったことや引っかかった部分を備忘録的にまとめたものになります。
(※間違った説明や用語を正しく使えていない箇所もあるのでお手柔らかにお願いします、、)

# AstroNvimとは
どのように環境を作ろうかと思って調べていく中で、[AstroNvim](https://astronvim.com/)というものを見つけました。
AstroNvimの特徴としては、AstroNvimをインストールするだけで他のpluginもインストールしてくれる便利なneovim環境starterkitみたいな感じです。
# AstroNvimをインストールする
進め方は[このリンク](https://docs.astronvim.com/)を参考にして進めていきました。
requirementsでnvimをインストールしておくことやnerd fontを準備しておく等ありますが、この辺はスキップします。
```
#　既存のnvim環境がある場合はbackupしておく
#　$はついてないけどterminalで叩くコマンドです
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
```
```
#　AstroNvimのリポジトリからnvimの設定ファイルをクローンする
git clone --depth 1 https://github.com/AstroNvim/template ~/.config/nvim
rm -rf ~/.config/nvim/.git
```
ここまででインストールは完了しており、neovim環境に必要なファイルが適切なディレクトリ構造で提供されます。
その後下記コマンドでnvimが開けたらOKです。
```
nvim
```
# よく利用しているpluginまとめ
AstroNvimをインストールした時点で様々なpluginを利用できる状態になっています。
その中で自分がよく使うpluginについてざっくり説明してみようと思います。
## telescope.nvim
言わずとしれたfuzzy finderでfile検索やgrep等ができます。
条件に引っかかったファイル一覧と中身のpreviewが見れます。
めっちゃ使います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3635501/27c3c313-3012-3973-e8b2-f90b8e20e55c.png)
## neo-tree.nvim
ディレクトリやファイルをブラウズできる(デフォルトはサイドバーで表示してくれる)
その中でファイルの作成や削除、リネームもできる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3635501/42bb2ff8-5b7a-d6f2-e2ab-36e2f3045166.png)
## which-key.nvim
入力中に利用可能なキーバインドをポップアップで表示してくれる。
AstroNvimで設定されているpluginのデフォルトのキーバインドは基本的にスペースから始まるからとりあえずスペース押せば何できるかが見れる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3635501/cd56f0e1-647d-cd92-c585-c36e48372fed.png)

これらをとりあえず利用したらテキストエディタとしては困らないくらいにはなるはずです。
# 個人的に入れたplugin
AstroNvimで標準では入っていないものなのですが個人的に入れてみて便利だったものもいくつか上げてみようと思います。
インストール方法についてはどっかのタイミングで追記しようと思います、、
## hlchunk.nvim
インデントのハイライトやカーソルの位置に応じてコードのチャンクをハイライトしてくれる。
AstroNvimでは同様なことができるindent-blanklineというpluginがインストールされていますが、indent-blanklineはdisableしてこちらを利用しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3635501/fb2e468c-0ad3-b15d-a53d-867b6eed12b0.png)
## noice.nvim
コマンドラインや/を押したときのsearchを画面中央に表示してくれる。
またメッセージを通知として出してくれます。
個人的には置換したいときにliveでpreviewしてくれるとこも気に入ってます。
あと左下にわざわざ目をやらなくてよくなるのもいい感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3635501/d05c2687-0abd-dd96-e9ca-9f3a769b45a0.png)
これに関しては既存のなにかしらの設定とバッティングしてエラーを吐いたので(詳細はよくわかっていない)設定自体も一応載せておきます。
```
# 自分の場合はhoverとsignatureの部分でエラーを吐いたのでnoice側でenabledをfalseにしている

  config = function()
    require("noice").setup {
      lsp = {
        hover = {
          enabled = false,
          silent = false, 
          view = nil, 
          opts = {}, 
        },
        signature = {
          enabled = false,
          },
        },
      },

```
# この環境に変えてからの感想
- AstroNvimでインストールされているplugin側でバージョンアップがあった場合に自分で特に設定ファイルを書き換える必要がなくAstroNvimのアップデートをするだけだから楽
- メンテされているうちはいいけどされなくなったとき何もわからん状態になってしまうかもしれないからある程度自分で触っておいたほうがよさそう
- 気軽にneovim使ってみようって場合は結構おすすめできる