🛠️

LazyVimの紹介

2024/12/15に公開

本記事は株式会社ココナラ Advent Calendar 2024 15日目の記事です。

はじめに

はじめまして、株式会社ココナラでフロントエンドエンジニアをしている@tm_1219と言います。

今回はNeovimを布教するための記事を書きます。
なぜ今Neovimを選ぶのかというと、手をホームポジションから動かさずに各種操作をキーボードで行うことができるからです。

Neovimといえば環境構築が難しいイメージがあり、Vim操作を覚える学習コストも高いのでそれらを理由に諦めた方も少なくないでしょう。
私もその中の一人で、Neovim使いに憧れてはいますが、VSCodeをVimプラグインで使う程度でした。

本記事では、Neovim使いに憧れているけど挫折した方、まだチャレンジできていない方などを対象に比較的とっつきやすいLazyVimを紹介します(Vim操作自体の解説は含みません)。
私もまだ学習中で使いこなせていないため、本記事の執筆を通して自身もさらに理解を深められればと思います。

ちなみにVim Advent Calendar 2024もあるので良かったらそちらも見てみてください。

LazyVimとは

LazyVimには便利なプラグインがデフォルトで入っており、環境構築の手間を省くことができます。
https://www.lazyvim.org/

また公式ドキュメントの情報が豊富な点に加えて、入力したキーに応じてエディタ上に各種操作ガイドが表示されるため、慣れていない状態でも扱いやすいです。

ホーム画面
ホーム画面

ガイド例
ガイド

LazyVimのはじめかた

環境構築

Neovimのインストール

Rosetta環境でNeovimをインストールしてしまうとうまく動かないことがあるので、ARM64環境でNeovimをインストールしましょう。

brew install neovim

Rosetta環境の場合

arch -arm64 brew install neovim

iTerm2のインストール

MacOS標準のターミナルだとNerdFontに対応しておらずいくつかのアイコンがうまく表示されないため、iTerm2などのターミナルを使うことをオススメします。

brew install iterm2

NerdFontのインストール

以下サイトから好きなNerdFontをダウンロードしてターミナル側でフォント設定を行います。
https://www.nerdfonts.com/font-downloads

LazyVimのインストール

以下の手順を参考にインストールします。
https://www.lazyvim.org/installation

checkhealthコマンドでエラーチェック

インストールできたら起動後に:checkhelthコマンドでエラーがないかチェックしましょう。
私の環境ではいくつかエラーが発生していたので、もし同じエラーが出ていたらそれぞれ対処していきましょう。

treesitter

treesitterにおいて以下のようなエラーが発生していました。

ERROR bash(highlights): ....10.1/share/nvim/runtime/lua/vim/treesitter/language.lua:112: Failed to load parser for language 'bash': uv_dlopen: no error
...

こちらはRosetta環境でNeovimをインストールしていたことが原因だったので、ARM64環境でNeovimをインストールし直しましょう。

luarocks

以下のようなエラーが発生したので、brew install luarocksを実行しました。

ERROR {/Users/hoge/.local/share/nvim/lazy-rocks/hererocks/bin/luarocks} not installed

ripgrep

以下のようなwarningが発生しgrepがうまく動かなかったため、brew install ripgrepを実行しました。

External Tools
   71 - WARNING ripgrep not available

一通り対応したら再度:checkhealthコマンドを実行してエラーが解消されていることを確認しましょう。

基本的な使い方

公式ドキュメントにあるキーマップを参考に操作していきます。
キーマップにある表記は以下のキーに対応しています。

<leader> →Spaceキー
<C> →Ctrlキー
<A> →Optionキー
<S> →Shiftキー

例)
<leader>e →Spaceキーを押した後にeキーを押す
<C-h> →Ctrlキーとhキーを同時に押す

ファイラー

<leader>eでファイラーをトグル表示することができます。
ファイラーを開いた後、j, kで上下移動、l or Enterでファイルorディレクトリを開きます。
<C-h><C-l>でファイラーとエディタ間を移動することができます。
複数ファイルを開いた場合は[b]bでバッファ間を移動できます。
ファイラ

他のIDEではマウスで調整することの多いウィンドウ幅、高さの調整もそれぞれ<C-Left>,<C-Right>,<C-Up>,<C-Down>で行うことができます。

ファイル検索

<leader>fでファイル名の曖昧検索ができます。
fzf

全検索+置換

<leader>gで全検索を行うことができます。
grep

<leader>srで全検索+置換も行うことができます。
replace

LSP(Language Server Protocol)

各種言語用のコード補完やシンタックスハイライトを行うための機能です。
今回は一例としてVue用のLSPを導入してみます。

<leader>cmでmason(LSPマネージャ)を開きます。
<C-f>でvueと入力して見つかったvue-language-serverを選択し、iでインストールを行います。
mason
vue-LSP

Neovim再起動後に任意のvueファイルを開き、v-などと入力すると各種サジェストと説明が表示されるようになります。
LSP

Formatter

コード整形を行うためのFormatterに関しては、LSPのインストール後にファイル保存を行うと自動で効くようになっています。
カスタマイズが必要であれば適宜Pluginや設定ファイルを用意することで柔軟に対応できるようです。

保存前
formatter1

保存後
formatter2

ESlint

※プロジェクト側にESlintがインストールされていることを前提とします。

こちらはエディタ上に構文エラーなどを表示するための機能です。
LazyVim Extrasのメニューからlinting.eslintを選んでxでインストールします。

extras
eslint

Neovim再起動後にvueファイルを開くとエラーが表示されるようになっています。
lint-error

Git

Git操作に関してはLazygitが付属しているため、こちらを利用するのがオススメです。

<leader>ggでNeovim上でLazygitを起動し、各種Git操作を行うことができます。
詳しい操作方法はこちら。

lazygit

Github Copilot/Chat

GitHub Copilot/Chat用のプラグインもあり、こちらもLazyVim Extrasからai.copilotai.copilot-chatをそれぞれインストールすることで利用できます。
copilot
copilot-chat

プラグインのインストール後にNeovimを再起動すると、ワンタイムコードとGitHubのログインURLが表示されるため、そちらでコードを入力すると連携が完了します。

その後エディタで入力を行うとCopilotがサジェストしてくれるようになります。
copilot2

Copilot Chatに関しては<leader>aaを押すとチャット画面が表示されるのでそこで会話することができます。
copilot-chat2

さいごに

本記事では一部プラグインしか紹介できませんでしたが、上記で紹介した以外にも便利なプラグインがたくさんインストールされています。
また、追加でプラグインを入れたり細かなカスタマイズを行うことも可能です。

本記事でNeovimに少しでも興味を持った方はぜひ一度触ってみてください。

明日は@hideki_okawaさんによる、「ローコードで社内管理画面を構築しよう」です。

ココナラでは積極的にエンジニアを採用しています。

採用情報はこちら。
https://coconala.co.jp/recruit/engineer/

カジュアル面談希望の方はこちら。
https://open.talentio.com/r/1/c/coconala/pages/70417

Discussion