NeoVim環境構築
環境
windows11 + wsl2 (ubuntu) + windows terminal
neovim 本体のインストール
$ sudo apt-add-repository ppa:neovim-ppa/stable
$ sudo apt-get update
$ sudo apt-get install neovim
最新バージョンが入っていることを確認する
$ nvim --version
2022/08/01 時点では 0.7.2
初期設定など
~/.config/nvim 以下に設定ファイルを追加していきましょう。
neovim は .vimrc を探すのではなく、~/.config/nvim/init.vim を見に行くので注意が必要です。(一応ユーザー直下の .vimrc も読み込むはずですが)
また、lua での設定記述も可能なのでそちらでも大丈夫です。
あとは nvim で NeoVim が起動するはずです。
(alias で nvim を vim にしておくと 1タイプ減ります。viは元々あるエディタで nvim 環境が壊れて編集できなくなった際に必要なのでより略すなら重複を避けて v などにしたほうがいいでしょう。)
筆者の設定を使う
筆者の設定をそのまま使う場合はリポジトリから clone して配置します。
$ cd ~/.config
残念ながら clone だけでは終わりません。
プラグインは恐らく(忘れちゃったけど多分) npm と deno に依存しているため、それぞれインストールする必要があります。
を実行すると入ります。
npm に関しては筆者は nvm で管理しています。
で nvm を入れた後
$ nvm install --lts
で最新かつ lts な node をインストールします。その後
$ nvm install-latest-npm
で最新の npm をインストールします。次に
$ nvm use 16
のように今使用するバージョンを指定しておきます。2022/08/11 では 16 が最新 lts
$ node -v
$ npm -v
でそれぞれバージョンが見えれば ok です。
次に、アイコンなどを表示するためのフォントを用意する必要があります。
nerd フォントと呼ばれるものをインストールする必要があります。
から Downloads をクリックすると色々なフォントが出てくると思います。
ダウンロードしたあと
また、後述の telescope.nvim は ripgrep に依存しているため
$ sudo apt install ripgrep
でインストールします。
telescope.nvim は好みが分かれるところだと思うので不要だと感じたら dein_lazy から telescope.nvim に関する部分は削除してください。
初回起動時には様々なプラグインのインストールが走るため時間がかかることに注意です。
筆者の neovim の見た目は以下のようになっています。(2022/08/11時点)
https://scrapbox.io/files/62f3cc727b121600215cc3e8.png
これで一応動作はするはずです。良い neovim 生活を
詳細(おまけ)
筆者の設定について詳細を記述しておきます。
自分でカスタマイズする際の参考にしてください。
基本設定について
common/options.vim に記述しており基本的な設定を行っています。
行番号を相対的な数に設定しているので、気に入らない人はset relativenumberを削除してください。
キーマップについて
基本の mapping は common/mappings.vim に記述
jj esc はもちろんのこと、window系の map をすべて s に割り当て直すなどしています。
他にも各プラグイン用の mapping は plugin/ の各ファイル内で記述されているので注意してください。
テーマについて
common/theme.vim に記述
カラーテーマについての記述がされています。
プラグイン管理の都合上、カラーテーマに関する設定を通常のプラグインと同じように設定してしまうとエラーが発生するので最後に読み込むようにファイルを分割しています。
プラグイン管理について
dein.vim によるプラグイン管理を行っています。
現行プラグインマネージャーの中でも最速と噂されていますが、筆者は未検証です。
また、プラグインマネージャーの中でも少し複雑なので注意が必要です。
init.vim で dein が toml ファイルに書かれているプラグインをあればインストール、元々あったものが消えていれば削除するというように設定してあります。
また、lazy という設定で遅延読み込みを行うことで起動時にすぐに必要にならないプラグインなどを後回しにし、起動時間を減らしています。
詳細は各自調べてください。
どのようなプラグインを導入しているかは dein.toml か dein_lazy.toml を参照してください。
(repo のあとに続くもので検索すれば github で見れます。)
各プラグインについて
それぞれの GitHub リポジトリにある README.md を読んでカスタマイズしていくことをおすすめします。
Dockerとか理解できたら Dockerfile に書いてどこにでも設定を持っていけるようにするかも