AstroNvim (neovim)#
Neovimとは#
簡単に言えば、高機能なモダンデザインのVim
Linuxのディストリビューションに標準で入っているVimの派生
スリムでモダンな機能(UIや補完など)や拡張機能(gitやツリー表示)の管理など標準搭載!!
様々なエディター(VS code, etc…)があるなか、Vimは使いやすさや拡張性が低い
AstroNvimとは#
デザインや必要機能があらかじめ設定されているneovim
neovimを一から自分仕様に設定するのはしんどいって人向け
他にも種類はあるかも
環境#
OS: Linux(Rocky Linux), Ubuntuなども可
作業フォルダ:筆者はAppというフォルダでappimage等を管理している
nerb-fontsのインストール#
AstroNvimはiconを使用するため,nerb-fontsに依存する
数GBほどあるため,cloneに時間がかかる
$ 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のリポジトリは neovim/neovim
appimageのダウンロード先はここ(GitHubの Releases から)
$ 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
で起動できるようにする
$ sudo ln -s ~/App/neovim/nvim.appimage /usr/bin/nvim
Neovim の実行
$ nvim
AstoroNvimのインストール#
過去にNvimを使っていた場合
# Nvimの設定ファイルのバックアップ
$ mv ~/.config/nvim ~/.config/nvim.bak
$ mv ~/.local/share/nvim ~/.local/share/nvim.bak
AstroNvimの設定ファイルを読み込む
$ git clone --depth 1 https://github.com/AstroNvim/AstroNvim ~/.config/nvim
nvimの起動と初期セットアップ
$ 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
使い方#
$ nvim . # 現在いる階層でnvimを起動する.(vs codeの`code .`と同じ)
terminalなので基本的にキーボード操作 詳細はショートカットはAstroNvimのホームページを参照
基本操作
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
orxclip
のインストールが必要使用するレジスタの選択
"*
で選択範囲の自動コピー"+
でいつもの"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
$ cd .local/share/nvim/mason/packages/mypy/ $ source venv/bin/activate $ pip install pydantic
Troubleshooting#
lazy.nvim#
<img src="./img/astronvim_2.jpg class=“img-align1”>
解決方法
2.‘U’ で indent-blankline.nvim をアップデートする
reference#
https://www.reddit.com/r/neovim/comments/eecbck/nvimappimage/
https://psipsina.jp/note/vim/neovim_clipboard.html
https://clangd.llvm.org/guides/system-headers#fixing-missing-system-header-issues
https://zenn.dev/h_wata/articles/4026a6af6dc671