74 lines
3.5 KiB
Lua
74 lines
3.5 KiB
Lua
-- Keymaps for better default experience
|
|
-- See `:help vim.keymap.set()`
|
|
--vim.keymap.set({ 'n', 'v' }, '<Space>', '<Nop>', { silent = true })
|
|
|
|
-- Remap for dealing with word wrap
|
|
vim.keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
|
|
vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
|
|
|
|
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
|
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
|
|
|
-- save file
|
|
-- vim.keymap.set({ "i", "x", "n", "s" }, "<C-s>", "<cmd>w<cr><esc>", { desc = "Save file" })
|
|
-- vim.keymap.set({ "i", "x", "n", "s" }, "<C-x><C-s>", "<cmd>:qall<cr>", { desc = "Save file" })
|
|
|
|
-- better indenting
|
|
vim.keymap.set("v", "<", "<gv")
|
|
vim.keymap.set("v", ">", ">gv")
|
|
|
|
-- better jumps
|
|
vim.keymap.set("n", "<C-d>", "<C-d>zz")
|
|
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
|
vim.keymap.set("n", "<C-f>", "<C-f>zz")
|
|
vim.keymap.set("n", "<C-b>", "<C-b>zz")
|
|
|
|
vim.keymap.set("i", "<C-f>", "<C-x><C-f>", { noremap = true, silent = true })
|
|
vim.keymap.set("i", "<C-b>", "<C-x><C-b>", { noremap = true, silent = true })
|
|
vim.keymap.set("i", "<C-l>", "<C-x><C-l>", { noremap = true, silent = true })
|
|
|
|
-- Paste over currently selected text without yanking it
|
|
vim.keymap.set("v", "p", '"_dP')
|
|
|
|
vim.keymap.set("n", "<leader>p", [["_dP]], { desc = "Paste over currently selected text without yanking it" })
|
|
|
|
vim.keymap.set("n", "<leader>Y", [["+Y]], { noremap = true, silent = true })
|
|
vim.keymap.set({ "n", "v" }, "<leader>y", [["+y]], { noremap = true, silent = true })
|
|
|
|
vim.keymap.set({"n", "v"}, "<leader>d", [["_d]], { noremap = true, silent = true })
|
|
|
|
-- new file
|
|
vim.keymap.set("n", "<leader>bn", "<cmd>enew<cr>", { desc = "New File" })
|
|
-- vim.keymap.set("n", "<leader>bd", "<cmd>bdelete<cr>", { desc = "Unload Buffer" })
|
|
|
|
vim.keymap.set("n", "<leader>`", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" })
|
|
vim.keymap.set("n", "<leader>bc", "<cmd>tabclose<cr>", { desc = "Close Tab" })
|
|
|
|
-- Clear search with <esc>
|
|
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<cr>', { desc = "clear hlsearch" })
|
|
-- vim.keymap.set("n", "<leader><esc>", "<cmd>nohlsearch<cr>", { desc = "clear hlsearch" })
|
|
|
|
-- Diagnostic keymaps
|
|
vim.keymap.set('n', '<leader>cl', vim.diagnostic.setloclist, { desc = 'Send diagnostic to location list' })
|
|
vim.keymap.set("n", "<leader>cq", vim.diagnostic.setqflist, { desc = "Send diagnostic to Quickfix" })
|
|
-- vim.keymap.set("n", "<leader>gq", "<cmd>copen<cr>", { desc = "Quickfix List" })
|
|
-- vim.keymap.set("n", "<leader>gl", "<cmd>lopen<cr>", { desc = "Location List" })
|
|
|
|
vim.keymap.set('n', '<leader>eb', "<cmd>.w !bash -e<cr>", { desc = "Send line to bash" })
|
|
vim.keymap.set('n', '<leader>eB', "<cmd>%w !bash -e<cr>", { desc = "Send buffer to bash" })
|
|
vim.keymap.set('n', '<leader>e.', "<cmd>.!bash -e<cr>", { desc = "Execute current line" })
|
|
vim.keymap.set('n', '<leader>e%', "<cmd>% !bash -e<cr>", { desc = "Execute current buffer" })
|
|
vim.keymap.set('n', '<leader>ex', "<cmd>!chmod +x %<cr>", { desc = "Make file executable" })
|
|
|
|
vim.keymap.set('n', "<leader>eL", "<cmd>source %<cr>", { desc = "Source current buffer" })
|
|
vim.keymap.set('n', "<leader>el", "<cmd>.lua<cr>", { desc = "Source current line" })
|
|
vim.keymap.set('v', "<leader>el", "<cmd>lua<cr>", { desc = "Source current line" })
|
|
|
|
vim.keymap.set("n", "<leader>ey", function()
|
|
local file = vim.fn.expand "%"
|
|
local line = vim.fn.line "."
|
|
vim.fn.setreg("+", string.format("%s:%d", file, line))
|
|
vim.notify "Copied line reference to clipboard"
|
|
end, { desc = "Copy line reference to clipboard" })
|
|
|