Files
neovim-config/lua/config/keymaps.lua
T
rootiest 1255161d4b make smart-splits mappings more dynamic
only use them when using smart-splits
2025-02-08 20:08:49 -05:00

68 lines
3.4 KiB
Lua

--- @module "config.keymaps"
--- This module defines the keymapping operations for the Neovim configuration.
--- The actual keybindings are defined in lua/data/keys.lua
-- ╭─────────────────────────────────────────────────────────╮
-- │ Keybinds │
-- ╰─────────────────────────────────────────────────────────╯
-- All keybinds are defined in lua/data/keys.lua
-- This allows both plugin and general keybinds to
-- be defined in a single central location
-- Add keymapper function
local add_keymap = require('data.func').add_keymap
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━ Group Keybinds ━━━━━━━━━━━━━━━━━━━━━━━━
-- Add keymaps for menu groups
for _, item in ipairs(require('data.keys').groups) do
add_keymap(item)
end
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━ General Keybinds ━━━━━━━━━━━━━━━━━━━━━━━
-- Add keymaps for miscellaneous keybinds
for _, item in ipairs(require('data.keys').misc) do
add_keymap(item)
end
-- ━━━━━━━━━━━━━━━━━━━━━━━━━ Telescope Keybinds ━━━━━━━━━━━━━━━━━━━━━━
-- Add keymaps for telescope symbols
for _, item in ipairs(require('data.keys').telescope.symbols) do
add_keymap(item)
end
if require('data.cond').use_splits() then
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━ Resizing splits ━━━━━━━━━━━━━━━━━━━━━━━━━━━
-- Add keymaps for resizing splits
for _, map in ipairs(require('data.keys').splits.resize) do
add_keymap(map[1], map[2], map[3], require('data.types').all_modes)
end
-- ━━━━━━━━━━━━━━━━━━━━━━━━ Moving between splits ━━━━━━━━━━━━━━━━━━━━━━━━
-- Add keymaps for moving between splits
for _, map in ipairs(require('data.keys').splits.move) do
add_keymap(map[1], map[2], map[3], require('data.types').all_modes)
end
-- ━━━━━━━━━━━━━━━━━━ Swapping buffers between windows ━━━━━━━━━━━━━━━
-- Add keymaps for swapping buffers
for _, map in ipairs(require('data.keys').splits.swap) do
add_keymap(map[1], map[2], map[3], require('data.types').all_modes)
end
end
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ MultiCursor ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-- Add keymaps for multicursor
for _, item in ipairs(require('data.keys').multicursor) do
add_keymap(item)
end
-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Overrides ━━━━━━━━━━━━━━━━━━━━━━━━━━
require('config.overrides')
-- Keymap to swap buffer positions
vim.keymap.set(
'n',
'<leader>bs',
require('data.func').swap_buffers,
{ noremap = true, silent = true, desc = 'Swap buffer' }
)