Closed13

packer.nvim→lazy.nvim 移行メモ

rayfiyorayfiyo

neovim(以降nvim)には優秀なプラグイン・パッケージマネージャーが存在する.
その一つである,wbthomason/packer.nvimだが,リンク先のとおり,当面の間メンテナンスをしなくなったようだ.
そこで,packer.nvim から lazy.nvim へ移行してみる.
記: 2023年10月15日

検索から当スクラップにアクセスした方は,当スクラップのうち このスクラップ の前後をみると幸せになれる可能性が高い.
質問や疑問や追加したほうが有益だと思われる情報があれば是非,再オープンにしてもらいたい.
記: 2024年4月22日

rayfiyorayfiyo

移行に関しては以下の記事が良さそうである.
日本語である(日本語に対応している?)ので,特にこの場に記載はせず 進めてみる.
lazy.nvim - Commentary of Dotfiles

(詰まった場所などがあればこの場に追記する.)

rayfiyorayfiyo

なんか出た

/home/user/.config/nvim/init.lua の処理中にエラーが検出されました:
E5113: Error while calling lua chunk: /home/user/.config/nvim/lua/lazy_nvim.lua:14: module 'lazy' not found:
        no field package.preload['lazy']
        no file './lazy.lua'
        no file '/__w/neovim/neovim/.deps/usr/share/luajit-2.1/lazy.lua'
        no file '/usr/local/share/lua/5.1/lazy.lua'
        no file '/usr/local/share/lua/5.1/lazy/init.lua'
        no file '/__w/neovim/neovim/.deps/usr/share/lua/5.1/lazy.lua'
        no file '/__w/neovim/neovim/.deps/usr/share/lua/5.1/lazy/init.lua'
        no file './lazy.so'
        no file '/usr/local/lib/lua/5.1/lazy.so'
        no file '/__w/neovim/neovim/.deps/usr/lib/lua/5.1/lazy.so'
        no file '/usr/local/lib/lua/5.1/loadall.so'
stack traceback:
        [C]: in function 'require'
        /home/user/.config/nvim/lua/lazy_nvim.lua:14: in main chunk
        [C]: in function 'require'
        /home/user/.config/nvim/init.lua:5: in main chunk

E5113 で issues を調べると以下がヒット.
https://github.com/folke/lazy.nvim/issues/1103
以上より,ランタイムを更新してみる.

rayfiyorayfiyo

ランタイムの更新が分からないが,取り敢えず nvim を NVIM v0.9.4 に更新した(AppImage)
しかし,改善せず

rayfiyorayfiyo

最初のlazy導入時にごちゃごちゃしていたことが原因かも知れないので,これを機に(文字に起こして)整理してみる.

~/.config/nvim/init.lua
-- 中略(その他luaのrequire)
require "lazy_nvim"
-- 中略(その他luaのrequire)
require "plugs/lazyConfig
$ tree lua/
lua/
├── その他luaのrequire
├── plugs
│    └── lazyConfig.lua
└── lazy_nvim.lua
lua/lazy_nvim.lua
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)
lua/plugs/lazyConfig.lua
require('lazy').setup(plugins, opts)
rayfiyorayfiyo
rm -rf ~/.local/share/nvim/lazy/

を実行して,nvimを起動してみると,無事に nvim を起動でき,:Lazy も動作した.

rayfiyorayfiyo

ついでに知識が今より乏しいころに書いた設定なども書き換えたりした

rayfiyorayfiyo

ただ,:Lazy sync をすると

  ● vimdoc-ja 0.03ms  start
        You have local changes in `/home/user/.local/share/nvim/lazy/vimdoc-ja`:
          * doc/tags-ja
        Please remove them to update.
        You can also press `x` to remove the plugin and then `I` to install it again.

というエラーがでる.再インストールするとその場はしのげるが再起動してコマンドを実行すると同じものが出る.
しかし,:Lazy health をしてみると問題は起きていないし,日本語は正しく翻訳されているので,何も見なかったことにしておく.

rayfiyorayfiyo

また,よく言われる起動速度だが,私はプラグインを10個も満たない程度しか入れておらずどれも最低限しかないので極大な変化は感じられなかったが,速くなっているような気がした.

rayfiyorayfiyo

次は,GitHub Copilot の導入や Go言語以外のLSPの導入をする.

rayfiyorayfiyo

以上で
packer.nvim→lazy.nvim 移行メモ
を完了とする.2023年10月15日17時30分

このスクラップは2023/10/15にクローズされました