さくっとpackerからlazyに乗り換える

さくっとpackerからlazyに乗り換える

最近nvimを使い始めてしばらく経ちますが、

packerメンテされてない問題に気がついたのでパッケージ管理をlazy.nvimに変更しました。

その際、さくっと乗り換えられる方法がよく分からなかったので自分用メモを残します。

似たような構成で乗り換えたい方の助けになれば幸いです。

1. after/をtmp/にリネーム

このような構成になっている場合は最初にafterをリネームする。

packerからlazyに書き換えた直後にpluginが無い状態で読み込まれてエラーが出ないようにする。

nvim
├── after # これを`mv after tmp`
│   └── plugin
│       :
│       :
│       ├── lsp.lua
│       ├── treesitter.lua
│       ├── trouble.lua
│       ├── undotree.lua
│       :
│       :
│       ├── vim-illuminate.lua
│       └── zenmode.lua
├── init.lua
├── lua
│   └── setup
│       ├── init.lua
│       ├── packer.lua
│       ├── remap.lua
│       └── set.lua

2. packer.luaをlazy.luaにリネーム

nvim
:
├── tmp
│   └── plugin
│       :
│
├── init.lua
├── lua
│   └── setup
│       ├── init.lua
│       ├── packer.lua # これを`mv packer.lua lazy.lua`
│       ├── remap.lua
│       └── set.lua

3. init.luaでlazy.luaを読み込む

├── lua
│   └── setup
│       ├── init.lua # 私の場合はここでremap等を読み込んでいるのでここに追加
│       ├── lazy.lua
│       ├── remap.lua
require("setup.lazy") -- こんな感じで追加
require("setup.set")
require("setup.remap")

4. lazy.luaファイル書き換え

lazy.nvimのGitHubページに従ってPackerでのpluginの定義から書き換える

これを(packer)

-- Only required if you have packer configured as `opt`
vim.cmd.packadd('packer.nvim')

return require('packer').startup(function(use)
  -- Packer can manage itself
  use 'wbthomason/packer.nvim'

こうしたり(lazy)

local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({
    "git",
    "clone",
    "--filter=blob:none",
    "https://github.com/folke/lazy.nvim.git",
    "--branch=stable", -- latest stable release
    lazypath,
  })
end
vim.opt.rtp:prepend(lazypath)

vim.g.mapleader = ","

local plugins = {

これを(packer)

  use({
    'folke/tokyonight.nvim',
    as = 'tokyonight'
  })
  use({
    'Mofiqul/vscode.nvim',
    as = 'vscode',
    config = function()
      vim.cmd('colorscheme vscode')
    end
  })

こうしたりする(lazy)

  {
    'folke/tokyonight.nvim',
    name = 'tokyonight'
  },
  {
    'Mofiqul/vscode.nvim',
    name = 'vscode',
    config = function()
      vim.cmd('colorscheme vscode')
    end
  },

置き換えに関して詳しくはGitHubのREADMEに記載があるので確認する

github.com

5. nvimを閉じて再起動

Lazyが走ってプラグインのインストールが始まる

6. checkhealthを実行してエラーを確認

コマンドモードでcheckhealth lazyを実行してエラーが無いか確認する。

:checkhealth lazy

packerから乗り換える場合はここでpackerあるから消してねみたいなメッセージを確認できるので書いてある通りのディレクトリを削除する。

7. 最後に

最初に変更したtmp/をafter/にリネームしてnvimを再起動で移行完了です。