🛠️

LazyVimを使ってみた

2024/02/24に公開

LazyVimは、lazy.vimというNeoVimのプラグインマネージャーを使ったセットアップ環境を提供してくれています。

そのため、これまでVimしか使ったことがなく、NVimをほとんど触ったことがないような、NVimの勝手が分からない自分でも手軽に良い感じの環境を一瞬で構築できるものでした。

手軽なのに、カッコいい環境がすぐにできるので、とりあえずお試しでNVim環境を作ろうと考えてる人には真っ先に勧めたいなと思いました。

公式サイトはこちら

環境(構築時)

Apple M1 Pro

NeoVim

バージョン
~ nvim -v
NVIM v0.9.5
Build type: Release
LuaJIT 2.1.1703358377

      システム vimrc: "$VIM/sysinit.vim"
       省略時の $VIM: "/usr/local/Cellar/neovim/0.9.5/share/nvim"

Run :checkhealth for more info

iTerm2

バージョン

Build 3.4.23

fish

バージョン
~ fish -v
fish, version 3.7.0

tmux

バージョン
~ tmux -V
tmux 3.4

構築手順

インストール

こちらを参考

すでに nvim がインストールされてる場合

// 必須
mv ~/.config/nvim{,.bak}

// 任意だが、推奨
mv ~/.local/share/nvim{,.bak}
mv ~/.local/state/nvim{,.bak}
mv ~/.cache/nvim{,.bak}

まだ nvim がインストールされていない場合

brew install neovim

git clone https://github.com/LazyVim/starter ~/.config/nvim
rm -rf ~/.config/nvim/.git
~ nvim

起動

nvim

このコマンドを入力することで、諸々のインストールが始まります。
そして、こんな感じのダッシュボードが表示されます。

当記事の下にある注意点にもありますが、最初はアイコンが表示されないかもしれません。

構築自体はこれで完了です。
非常に簡単にできました。
任意のプロジェクトで nvim ./ と入力して、プロジェクトを開いてみると左のPaneにプロジェクトのファイル構造が出て、操作ができるようになります。

基本操作

デフォルトの操作はこちらにあります。
結構多くて、まだ試せていないものも多いですが、カスタムもできます。

カスタムキーマップ

~/.config/nvim/lua/config/keymaps.lua に記述することでカスタムキーマップを設定できます。
luaで記述しないといけないので、 vimrcに書いてある設定をluaで書き直さないといけなく少し面倒です。

注意点

アイコン

最初アイコンがないので全部 ? になってしまっていたので、アイコンを読み込ませるようにする必要があります。

https://www.nerdfonts.com/font-downloads

Symbols Nerd Font をダウンロードして、iTerm2に読み込ませる。
Preferences > Profiles > Text > Use a different font for non-ASCII text にチェック > Non-ASCII FONT で Symbols Nerd Font MONO を選択

M1 Mac (Rosseta2 環境)

ARM64でインストールしないとtreesitterのインストールがうまくいかないことがありました。

arch -arm64 fish

で起動し直して、再度neovimをbrewでインストール。
この際、前のstateやcacheが残ってるとうまくいかないので綺麗にする。

rm -rf ~/.local/share/nvim
rm -rf ~/.local/state/nvim
rm -rf ~/.cache/nvim

tmux での動作異常

tmuxで起動すると、tmuxの設定が干渉してEscでNormalモードにする時に若干のラグが発生し、操作感が非常に悪いものになってしまう。

~/.tmux.conf に以下を追加し、 tmux source ~/.tmux.conf を行う。

set -s escape-time 0

参考

https://qiita.com/tnktnk/items/065a584af265e9a3a8e7
https://zenn.dev/umaidashi/scraps/42269e2a5a9b40
https://github.com/LunarVim/LunarVim/issues/1857

Discussion