71 lines
2.8 KiB
Lua
71 lines
2.8 KiB
Lua
-- Custom keymaps
|
|
local map = vim.keymap.set
|
|
|
|
-- Terminal keymaps
|
|
-- <leader>th - Open terminal in horizontal split
|
|
map("n", "<leader>th", function()
|
|
vim.cmd("split | terminal")
|
|
vim.cmd("startinsert")
|
|
end, { desc = "Terminal (horizontal split)" })
|
|
|
|
-- <leader>tv - Open terminal in vertical split
|
|
map("n", "<leader>tv", function()
|
|
vim.cmd("vsplit | terminal")
|
|
vim.cmd("startinsert")
|
|
end, { desc = "Terminal (vertical split)" })
|
|
|
|
-- Terminal mode: Escape to normal mode
|
|
map("t", "<Esc><Esc>", "<C-\\><C-n>", { desc = "Exit terminal mode" })
|
|
|
|
-- Explorer keymaps (Snacks explorer)
|
|
-- Ctrl+Shift+e - Toggle explorer
|
|
map("n", "<C-S-e>", function() Snacks.explorer() end, { desc = "Toggle Explorer" })
|
|
map("i", "<C-S-e>", function() Snacks.explorer() end, { desc = "Toggle Explorer" })
|
|
|
|
-- Note: Ctrl+Shift+v and Ctrl+Shift+h for opening files in splits
|
|
-- are configured in the snacks picker config (lua/plugins/editor.lua)
|
|
-- as they need to work within the explorer buffer context
|
|
|
|
-- Additional useful keymaps
|
|
-- Better window navigation
|
|
map("n", "<C-h>", "<C-w>h", { desc = "Go to left window" })
|
|
map("n", "<C-j>", "<C-w>j", { desc = "Go to lower window" })
|
|
map("n", "<C-k>", "<C-w>k", { desc = "Go to upper window" })
|
|
map("n", "<C-l>", "<C-w>l", { desc = "Go to right window" })
|
|
|
|
-- Resize windows with arrows
|
|
map("n", "<C-Up>", "<cmd>resize +2<cr>", { desc = "Increase window height" })
|
|
map("n", "<C-Down>", "<cmd>resize -2<cr>", { desc = "Decrease window height" })
|
|
map("n", "<C-Left>", "<cmd>vertical resize -2<cr>", { desc = "Decrease window width" })
|
|
map("n", "<C-Right>", "<cmd>vertical resize +2<cr>", { desc = "Increase window width" })
|
|
|
|
-- Buffer navigation
|
|
map("n", "<S-h>", "<cmd>bprevious<cr>", { desc = "Prev buffer" })
|
|
map("n", "<S-l>", "<cmd>bnext<cr>", { desc = "Next buffer" })
|
|
|
|
-- Clear search highlight
|
|
map("n", "<Esc>", "<cmd>nohlsearch<cr>", { desc = "Clear search highlight" })
|
|
|
|
-- Save file
|
|
map({ "n", "i", "v", "s" }, "<C-s>", "<cmd>w<cr><esc>", { desc = "Save file" })
|
|
|
|
-- Better indenting in visual mode
|
|
map("v", "<", "<gv")
|
|
map("v", ">", ">gv")
|
|
|
|
-- Move lines up/down
|
|
map("n", "<A-j>", "<cmd>m .+1<cr>==", { desc = "Move line down" })
|
|
map("n", "<A-k>", "<cmd>m .-2<cr>==", { desc = "Move line up" })
|
|
map("v", "<A-j>", ":m '>+1<cr>gv=gv", { desc = "Move selection down" })
|
|
map("v", "<A-k>", ":m '<-2<cr>gv=gv", { desc = "Move selection up" })
|
|
|
|
-- Quick access to AI chat
|
|
map("n", "<leader>aa", "<cmd>AvanteAsk<cr>", { desc = "AI Ask" })
|
|
map("v", "<leader>aa", "<cmd>AvanteAsk<cr>", { desc = "AI Ask (selection)" })
|
|
map("n", "<leader>ac", "<cmd>AvanteChat<cr>", { desc = "AI Chat" })
|
|
map("n", "<leader>at", "<cmd>AvanteToggle<cr>", { desc = "AI Toggle" })
|
|
|
|
-- Database keymaps
|
|
map("n", "<leader>db", "<cmd>DBUIToggle<cr>", { desc = "Toggle DB UI" })
|
|
map("n", "<leader>da", "<cmd>DBUIAddConnection<cr>", { desc = "Add DB Connection" })
|