[AstroNvim]NeoVimを簡単にセットアップ

# AstroVimとは？
[AstroVim](https://github.com/kabinspace/AstroVim)とは、
- あらかじめ便利なプラグインが用意されたNeovimコンフィグ
これを用いることでNeovimのセットアップを簡単に行うことができます。
![Screen Shot 2022-03-21 at 14.22.19.png](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/62f3022e-00b9-403b-a92a-2e0c1379f8e0/Screen_Shot_2022-03-21_at_14.22.19.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220321%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220321T053618Z&X-Amz-Expires=86400&X-Amz-Signature=c5a1139d7e6b09838819c2fe9585c6a6b8228c507fe024040c856dea5e01ccec&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Screen%2520Shot%25202022-03-21%2520at%252014.22.19.png%22&x-id=GetObject)

セットアップが完了するとこんな感じです、かっこいい！


# インストール方法 (Mac os)
AstroVimのインストールにあたり、
- [Neovim](https://github.com/neovim/neovim)
- [nerd-fonts](https://github.com/ryanoasis/nerd-fonts)
のインストールが必要になるのでこちらから行っていきます。

## NeoVimのインストール
Mac OSではbrewからNeoVimがインストール可能です。
```bash
brew install neovim
```

他のOSの場合は[GitHubのREADME](https://github.com/neovim/neovim)を参考にインストールしてください。

## nerd-fontsのインストール

```bash
git clone https://github.com/ryanoasis/nerd-fonts.git
cd nerd-fonts
./install.sh
```

## AstroVimのインストール

ようやく本題です！といっても手順は簡単で、

```bash
mv ~/.config/nvim ~/.config/nvimbackup
git clone https://github.com/kabinspace/AstroVim ~/.config/nvim
```

これだけでインストールが完了です。

# 初期設定

簡単な初期設定が必要なので、、

```bash
nvim +PackerSync
```

これでnvimの起動　＋　必要なプラグインがインストールされます。
初期からインストールされるプラグインとして、以下のものがあります、

- File explorer with [Nvimtree](https://github.com/kyazdani42/nvim-tree.lua)
- Autocompletion with [Cmp](https://github.com/hrsh7th/nvim-cmp)
- Git integration with [Gitsigns](https://github.com/lewis6991/gitsigns.nvim)
- Statusline with [Lualine](https://github.com/nvim-lualine/lualine.nvim)
- Terminal with [Toggleterm](https://github.com/akinsho/toggleterm.nvim)
- Fuzzy finding with [Telescope](https://github.com/nvim-telescope/telescope.nvim)
- Syntax highlighting with [Treesitter](https://github.com/nvim-treesitter/nvim-treesitter)
- Formatting and linting with [Null-ls](https://github.com/jose-elias-alvarez/null-ls.nvim)
- Language Server Protocol with [Native LSP](https://github.com/neovim/nvim-lspconfig)

そして、

`:LspInstall`でLSPと `:TSInstall`でlanguage parserをインストール

例）Pythonでの開発の場合
`:LspInstall pyright`
`:TSInstall python`

# 使ってみる！
それでは使ってみましょう！
`nvim`で起動できます。
![Screen Shot 2022-03-21 at 14.13.43.png](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/545e9a47-5004-43b9-8ac8-518ce36e92bd/Screen_Shot_2022-03-21_at_14.13.43.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220321%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220321T053722Z&X-Amz-Expires=86400&X-Amz-Signature=7d9c8d6d7df1b44b6ba8d19f777e312edf3b554091ec83043dcf961b50169d68&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Screen%2520Shot%25202022-03-21%2520at%252014.13.43.png%22&x-id=GetObject)
かっこいいウィンドウが出てきました、
初期画面に書いてある通り、speceを押しながらfを２回押すとfile検索ができ、speceを押しながらfoの順に押すと、最新のファイルを検索できたりという形になっています。

その他にもさまざまなプラグインが入っているので、
`:NvimTreeToggle`

で下の画像のようにディレクトリを確認できます。

![Screen Shot 2022-03-21 at 14.17.29.png](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/e726223d-41fb-4782-b8aa-780dcfbfbc24/Screen_Shot_2022-03-21_at_14.17.29.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220321%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220321T053732Z&X-Amz-Expires=86400&X-Amz-Signature=69bf6d9a20fe71b61a1e9ca978eb6b0101b411c1387c3978448bfa5ed74a52c7&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Screen%2520Shot%25202022-03-21%2520at%252014.17.29.png%22&x-id=GetObject)

# コマンド一覧
### General Mappings
Leader key              -->         Space
Escape key              -->         ii, jj, jk, kj
Resize up               -->         Ctrl + Up
Resize Down             -->         Ctrl + Down
Resize Left             -->         Ctrl + Left
Resize Right            -->         Ctrl + Right
Up Window               -->         Ctrl + k
Down Window             -->         Ctrl + j
Left Window             -->         Ctrl + h
Right Window            -->         Ctrl + l
Force Write             -->         Ctrl + w
Force Quit              -->         Ctrl + q
Terminal                -->         Ctrl + \
Next Buffer             -->         Shift + l
Previous Buffer         -->         Shift + h
Comment                 -->         Space + /
NvimTreeToggle          -->         Space + e
NvimTreeFocus           -->         Space + o
Save Session            -->         s + s

### LSP Mappings
Hover Document          -->         Shift + k
Symbols Outline         -->         Space + s
Set Local List          -->         Space + p
Line Diagnostics        -->         gl
Code Actions            -->         ca
Rename                  -->         rn
Diagnostic Next         -->         gj
Diagnostics Previous    -->         gk
Declaration             -->         gD
Definition              -->         gd
Implementation          -->         gi
References              -->         gr
Open Float              -->         go

### Telescope Mappings
Live Grep               -->         Space + fw
Git Status              -->         Space + gt
Git Commits             -->         Space + gc
Find files              -->         Space + ff
Buffers                 -->         Space + fb
Help Tags               -->         Space + fh
Old Files               -->         Space + fo


その他のショートカットやコマンドに関しては[こちらのURL](https://qiita.com/hide/items/5bfe5b322872c61a6896)や上記したプラグインのREADMEを参考に使ってみてください！！