🛠️

LazyVimを使ってみた

2024/02/24に公開

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

そのため、これまで Vim しか使ったことがなく、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