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