-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathkeymaps.lua
More file actions
85 lines (68 loc) · 3.18 KB
/
keymaps.lua
File metadata and controls
85 lines (68 loc) · 3.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
-- Keymaps are automatically loaded on the VeryLazy event
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
-- Add any additional keymaps here
local map = vim.keymap.set
-- Helpers
local function close_other_buffers()
local current = vim.api.nvim_get_current_buf()
for _, buf in ipairs(vim.api.nvim_list_bufs()) do
if vim.api.nvim_buf_is_loaded(buf) and vim.bo[buf].buflisted and buf ~= current then
vim.cmd("bdelete " .. buf)
end
end
end
-- Neo-tree keybindings
-- <leader><tab> = LEFT sidebar tree (always left)
-- <leader>e = Floating tree (always floating)
map("n", "<leader><tab>", "<cmd>Neotree toggle left<cr>", { desc = "Toggle NeoTree (left)" })
map("n", "<leader>e", "<cmd>Neotree float<cr>", { desc = "NeoTree (floating)" })
-- Buffer navigation with Tab
map("n", "<Tab>", "<cmd>bnext<cr>", { desc = "Next buffer" })
map("n", "<S-Tab>", "<cmd>bprevious<cr>", { desc = "Previous buffer" })
-- Telescope file finding (force override after LazyVim/snacks)
vim.schedule(function()
map("n", "<leader>ff", function()
require("telescope.builtin").find_files({ cwd = vim.loop.cwd() })
end, { desc = "Find Files" })
map("n", "<leader>fp", function()
require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root })
end, { desc = "Find Plugin File" })
end)
-- Close current buffer without quitting Neovim
map("n", "<C-x>", "<cmd>bdelete<cr>", { desc = "Close buffer" })
-- Force close current buffer (discard changes)
map("n", "<leader>X", "<cmd>bdelete!<cr>", { desc = "Force close buffer" })
-- Close other buffers, keep current
map("n", "<leader>bo", close_other_buffers, { desc = "Close other buffers" })
-- Close current window
map("n", "<leader>wx", "<cmd>close<cr>", { desc = "Close window" })
-- Close current tab
map("n", "<leader>tx", "<cmd>tabclose<cr>", { desc = "Close tab" })
-- Quit commands
map("n", "<leader>qq", "<cmd>q<cr>", { desc = "Quit" })
map("n", "<leader>qQ", "<cmd>q!<cr>", { desc = "Quit (force)" })
map("n", "<leader>qa", "<cmd>qa<cr>", { desc = "Quit all" })
map("n", "<leader>qA", "<cmd>qa!<cr>", { desc = "Quit all (force)" })
-- Close lists
map("n", "<leader>cx", "<cmd>cclose<cr>", { desc = "Close quickfix" })
map("n", "<leader>lx", "<cmd>lclose<cr>", { desc = "Close location list" })
-- Find files in entire system (start from home directory)
map("n", "<leader>fA", function()
require("telescope.builtin").find_files({ cwd = vim.loop.os_homedir() })
end, { desc = "Find files (all folders)" })
-- LSP code actions
map({"n", "v"}, "<leader>ca", vim.lsp.buf.code_action, { desc = "LSP Code Action" })
map("n", "<leader>th", function()
local Terminal = require("toggleterm.terminal").Terminal
if not _horizontal_term then
_horizontal_term = Terminal:new({ direction = "horizontal", hidden = true })
end
_horizontal_term:toggle()
end, { desc = "Toggle Terminal (horizontal)" })
map("n", "<leader>tv", function()
local Terminal = require("toggleterm.terminal").Terminal
if not _vertical_term then
_vertical_term = Terminal:new({ direction = "vertical", hidden = true })
end
_vertical_term:toggle()
end, { desc = "Toggle Terminal (vertical)" })