lazy.nvim으로 플러그인을 설치는 했는데 실행이 안 된다면

J·2025년 6월 3일

요약

  1. :lua require('pluginname').setup()으로 실행이 되는지 확인
  2. 실행이 된다면 플러그인 파일에 opts={} 추가 (오타 주의, s 있음)

문제 확인 및 해결

:lua require('lualine').setup()

-- 실행 안 되는 예시, lualine.lua
return {
  'nvim-lualine/lualine.nvim',
  dependencies = { 'nvim-tree/nvim-web-devicons' },
}
  1. :lua require('lualine').setup()을 해본다.
  2. 이것으로 실행이 된다면 setup 단계를 플러그인 파일에 설정해줘야 한다.

opts = {}

플러그인 테이블에 opts = {},를 명시해주면 setup이 자동적으로 실행된다. {}로 비어있는 테이블이어도 마찬가지이다.

-- 실행 되는 예시, lualine.lua
return {
  'nvim-lualine/lualine.nvim',
  dependencies = { 'nvim-tree/nvim-web-devicons' },
  opts = {},
}

opts가 필요한 이유

lazy.nvim 공식문서 setup 관련 내용

config is executed when the plugin loads. The default implementation will automatically run require(MAIN).setup(opts) if opts or config = true is set. Lazy uses several heuristics to determine the plugin's MAIN module automatically based on the plugin's name. (opts is the recommended way to configure plugins).

require(MAIN).setup(opts) 자동 실행 조건

  • config = true 혹은
  • opts = true
    lua에서 falsy한 것은 false, nil 밖에 없다. 나머지는 모두 trusy하다. 따라서 빈 opts를 설정하면 참값이 되어 setup이 자동 실행된다. 그러나 이를 설정하지 않으면 nil이 되기에 자동 실행이 되지 않는다.

여담

config vs opts

lazy.vim 공식문서: config 말고 opts 사용해라

Always use opts instead of config when possible. config is almost never needed.
GOOD

{ "folke/todo-comments.nvim", opts = {} },

BAD

{
  "folke/todo-comments.nvim",
  config = function()
    require("todo-comments").setup({})
  end,
},

0개의 댓글