78 lines
2.3 KiB
Lua
78 lines
2.3 KiB
Lua
vim.g.mapleader = " "
|
|
vim.g.maplocalleader = " "
|
|
|
|
-- Keymaps for better default experience
|
|
vim.keymap.set({ "n", "v" }, "<Space>", "<Nop>", { silent = true })
|
|
|
|
-- Space + s saves the file
|
|
vim.keymap.set("n", "<Leader>s", ":write<CR>", { silent = true })
|
|
|
|
-- Move normally between wrapped lines
|
|
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 })
|
|
|
|
-- Shift + q - Quit
|
|
vim.keymap.set("n", "Q", "<C-W>q")
|
|
|
|
-- vv - Makes vertical split
|
|
vim.keymap.set("n", "vv", "<C-W>v")
|
|
-- ss - Makes horizontal split
|
|
vim.keymap.set("n", "ss", "<C-W>s")
|
|
|
|
-- Quick jumping between splits
|
|
vim.keymap.set("n", "<C-j>", "<C-w>j")
|
|
vim.keymap.set("n", "<C-k>", "<C-w>k")
|
|
vim.keymap.set("n", "<C-h>", "<C-w>h")
|
|
vim.keymap.set("n", "<C-l>", "<C-w>l")
|
|
|
|
-- Indenting in visual mode (tab/shift+tab)
|
|
vim.keymap.set("v", "<Tab>", ">gv")
|
|
vim.keymap.set("v", "<S-Tab>", "<gv")
|
|
|
|
-- Move to the end of yanked text after yank and paste
|
|
vim.cmd("vnoremap <silent> y y`]")
|
|
vim.cmd("vnoremap <silent> p p`]")
|
|
vim.cmd("nnoremap <silent> p p`]")
|
|
|
|
-- Space + Space to clean search highlight
|
|
vim.keymap.set("n", "<Leader>h", ":noh<CR>", { silent = true })
|
|
|
|
-- Fixes pasting after visual selection.
|
|
vim.keymap.set("v", "p", '"_dP')
|
|
|
|
-- Select all
|
|
vim.keymap.set("n", "<C-a>", "gg<S-v>G")
|
|
|
|
-- Save with root permission (not working for now)
|
|
--vim.api.nvim_create_user_command('W', 'w !sudo tee > /dev/null %', {})
|
|
|
|
-- Disable continuations
|
|
vim.keymap.set("n", "<Leader>o", "o<Esc>^Da", opts)
|
|
vim.keymap.set("n", "<Leader>O", "O<Esc>^Da", opts)
|
|
|
|
-- Jumplist
|
|
vim.keymap.set("n", "<C-m>", "<C-i>", opts)
|
|
|
|
-- New tab
|
|
vim.keymap.set("n", "te", ":tabedit")
|
|
vim.keymap.set("n", "<tab>", ":tabnext<Return>", opts)
|
|
vim.keymap.set("n", "<s-tab>", ":tabprev<Return>", opts)
|
|
|
|
-- Resize window
|
|
vim.keymap.set("n", "<C-w><left>", "<C-w><")
|
|
vim.keymap.set("n", "<C-w><right>", "<C-w>>")
|
|
vim.keymap.set("n", "<C-w><up>", "<C-w>+")
|
|
vim.keymap.set("n", "<C-w><down>", "<C-w>-")
|
|
|
|
-- Diagnostics
|
|
vim.keymap.set("n", "<C-j>", function()
|
|
vim.diagnostic.goto_next()
|
|
end, opts)
|
|
|
|
vim.keymap.set("n", "<leader>r", function()
|
|
require("craftzdog.hsl").replaceHexWithHSL()
|
|
end)
|
|
|
|
vim.keymap.set("n", "<leader>i", function()
|
|
require("craftzdog.lsp").toggleInlayHints()
|
|
end) |