/ nvim / init.lua
init.lua
 1  -- vim.pack-native: no LazyVim, no lazy.nvim. See .cursor/plans/2026-02-27_*_nvim-pack-native.plan.md
 2  
 3  vim.g.mapleader = ' '
 4  vim.g.maplocalleader = '\\'
 5  
 6  -- Overrides/extensions load first (e.g. lua/local/noice-ext.lua)
 7  vim.opt.rtp:prepend(vim.fn.stdpath('config') .. '/lua/local')
 8  
 9  require('config.options')
10  require('config.keymaps')
11  require('config.autocmds')
12  
13  require('pack').setup()
14  
15  -- Plugin config/setup (colorscheme, yazi, fzf, gitsigns, LSP, lualine, etc.)
16  require('config.pack_after')
17  
18  -- Which-key must run after pack so keymaps are visible
19  local which_key_ok, which_key = pcall(require, 'which-key')
20  if which_key_ok and which_key then
21    which_key.setup({})
22    -- New spec (v3): group labels for keybinding popup; plugins add child keymaps
23    -- Only register groups for prefixes that don't have an empty keymap (avoids duplicate warnings for \c, \g, \m, \t, <leader>t)
24    which_key.add({
25      { '<leader>b', group = 'Buffer', mode = 'n' },
26      { '<leader>c', group = 'Code', mode = 'n' },
27      { '<leader>f', group = 'Find', mode = 'n' },
28      { '<leader>g', group = 'Git', mode = 'n' },
29      { '<leader>s', group = 'Search', mode = 'n' },
30      { '<leader>u', group = 'UI', mode = 'n' },
31      { '<leader>U', group = 'Undo', mode = 'n' },
32      { '<leader>w', group = 'Window', mode = 'n' },
33      { '<leader>x', group = 'Quickfix', mode = 'n' },
34      { '<leader>z', group = 'Zen', mode = 'n' },
35      { '\\z', group = 'FzfLua', mode = 'n' },
36    })
37  end