# AstroNvim (neovim) ## Neovimとは **簡単に言えば、高機能なモダンデザインのVim** Linuxのディストリビューションに標準で入っているVimの派生 スリムでモダンな機能(UIや補完など)や拡張機能(gitやツリー表示)の管理など標準搭載!!
様々なエディター(VS code, etc..)があるなか、Vimは使いやすさや拡張性が低い ## [AstroNvim](https://astronvim.com)とは デザインや必要機能があらかじめ設定されているneovim neovimを一から自分仕様に設定するのはしんどいって人向け 他にも種類はあるかも - [NvChad](https://github.com/NvChad/NvChad) ## 環境 - OS: Linux(Rocky Linux), Ubuntuなども可 - 作業フォルダ:筆者はAppというフォルダでappimage等を管理している ## nerb-fontsのインストール AstroNvimはiconを使用するため,nerb-fontsに依存する 数GBほどあるため,cloneに時間がかかる ```bash $ mkdir -p ~/App/neovim $ cd ~/App/neovim $ git clone --depth 1 https://github.com/ryanoasis/nerd-fonts.git $ cd nerd-fonts $ chmod u+x install.sh && ./install.sh ``` ## neovimのインストール neovimのリポジトリは [https://github.com/neovim/neovim/tree/stable](https://github.com/neovim/neovim/tree/stable) appimageのダウンロード先はここ(GitHubの [Releases](https://github.com/neovim/neovim/releases/tag/stable) から) ```bash $ cd ~/App/neovim $ wget https://github.com/neovim/neovim/releases/download/stable/nvim.appimage $ chmod u+x ~/App/neovim/nvim.appimage ``` 毎回,appimageを実行するのはめんどくさい `/usr/bin/` 内に `nvim.appimage` へのシンボリックリンクを作成し,どこからでも `nvim` で起動できるようにする ```bash $ sudo ln -s ~/App/neovim/nvim.appimage /usr/bin/nvim ``` Neovim の実行 ```bash $ nvim ``` :::{dropdown} FUSEエラーが出た場合 libfuse2をインストールする ```bash $ sudo apt install libfuse2 ``` ::: ## AstoroNvimのインストール - 過去にNvimを使っていた場合 ```BASH # Nvimの設定ファイルのバックアップ $ mv ~/.config/nvim ~/.config/nvim.bak $ mv ~/.local/share/nvim ~/.local/share/nvim.bak ``` AstroNvimの設定ファイルを読み込む ```bash $ git clone --depth 1 https://github.com/AstroNvim/AstroNvim ~/.config/nvim ``` nvimの起動と初期セットアップ ```bash $ nvim $ nvim --version NVIM v0.9.4 Build type: Release LuaJIT 2.1.1692716794 system vimrc file: "$VIM/sysinit.vim" fall-back for $VIM: "/__w/neovim/neovim/build/nvim.AppDir/usr/share/nvim" Run :checkhealth for more info ``` ## 使い方 ```bash $ nvim . # 現在いる階層でnvimを起動する.(vs codeの`code .`と同じ) ``` terminalなので基本的にキーボード操作 詳細はショートカットは[AstroNvimのホームページ](https://astronvim.com/Basic%20Usage/walkthrough)を参照 - 基本操作 - space keyがLeader - space keyを一回押すとショートカット一覧表示 - コマンドモード
Escape -> コロン(:)でコマンドモードに - w で保存 - q で終了 - Tab でコマンド一覧 - Mason - AstroUpdate ...etc ## 補完プラグイン - 検索ツール(高速なgrep) 標準で入っていないのでインストールする `space key -> f -> w`の順に押すことで, **特定の文字列を含むファイル** を検索 `space key -> f -> f`の順に押すことで, **特定の文字列がファイル名にあるファイル** を検索 ``` $ sudo apt install ripgrep $ rg import test.py # 単純にコマンドを使う場合はこう ``` - Python用の言語サーバー導入 ``` $ sudo apt install python3-venv # flake8, black, mypy で仮想環境が必要 $ sudo apt install npm # pyright で必要 ``` - nvimのコマンドモードで `:MasonInstall pyright flake8 black mypy` - clipboard Linuxの場合,`xsel` or `xclip` のインストールが必要 - 使用するレジスタの選択 - `"*` で選択範囲の自動コピー - `"+` でいつもの - `"0` でヤンク - コピーは `Normal Mode` で `y` - ペーストは `Normal Mode` で `p` ``` $ sudo apt install xsel ``` - C, C++用の言語サーバー導入 - nvimのコマンドモードで `:MasonInstall clangd` ``` # main.cpp コンパイル時の詳細表示(インクルードパスやエラーなど) $ ~/.local/share/nvim/mason/bin/clangd --check=/path/to/main.cpp # (Option) もし,標準ライブラリがないとエラーが出た場合,インストール $ sudo apt install libstdc++-12-dev # セレクトされた GCC バージョンの標準ライブラリが入っていない場合 ``` ## lint のプラグイン導入 mason の仮想環境に直接入れないと認識しない^[4] - mypy - pydantic ```bash $ cd .local/share/nvim/mason/packages/mypy/ $ source venv/bin/activate $ pip install pydantic ``` ## Troubleshooting #### lazy.nvim **解決方法** 1.コマンドモードで Lazy を開く 2.'U' で indent-blankline.nvim をアップデートする ## reference 1. https://www.reddit.com/r/neovim/comments/eecbck/nvimappimage/ 2. https://psipsina.jp/note/vim/neovim_clipboard.html 3. https://clangd.llvm.org/guides/system-headers#fixing-missing-system-header-issues 4. https://zenn.dev/h_wata/articles/4026a6af6dc671