90 lines
3.9 KiB
Lua
Executable File
90 lines
3.9 KiB
Lua
Executable File
local opts = { noremap = true, silent = true }
|
|
|
|
-- better up/down
|
|
vim.keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
|
|
vim.keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
|
|
|
|
-- Move text up and down
|
|
vim.keymap.set("n", "<C-k>", "<ESC>:m .-2<CR>==", opts)
|
|
vim.keymap.set("n", "<C-j>", "<ESC>:m .+1<CR>==", opts)
|
|
|
|
-- Move Lines
|
|
vim.keymap.set("n", "<C-j>", ":m .+1<CR>==", { desc = "Move down" })
|
|
vim.keymap.set("v", "<C-j>", ":m '>+1<CR>gv=gv", { desc = "Move down" })
|
|
vim.keymap.set("i", "<C-j>", "<Esc>:m .+1<CR>==gi", { desc = "Move down" })
|
|
vim.keymap.set("n", "<C-k>", ":m .-2<CR>==", { desc = "Move up" })
|
|
vim.keymap.set("v", "<C-k>", ":m '<-2<CR>gv=gv", { desc = "Move up" })
|
|
vim.keymap.set("i", "<C-k>", "<Esc>:m .-2<CR>==gi", { desc = "Move up" })
|
|
|
|
-- Clear search with <esc>
|
|
vim.keymap.set("n", "<esc>", "<cmd>noh<cr><esc>", opts)
|
|
vim.keymap.set("i", "<esc>", "<cmd>noh<cr><esc>", opts)
|
|
|
|
-- https://github.com/mhinz/vim-galore#saner-behavior-of-n-and-n
|
|
vim.keymap.set("n", "n", "'Nn'[v:searchforward]", { expr = true, desc = "Next search result" })
|
|
vim.keymap.set("x", "n", "'Nn'[v:searchforward]", { expr = true, desc = "Next search result" })
|
|
vim.keymap.set("o", "n", "'Nn'[v:searchforward]", { expr = true, desc = "Next search result" })
|
|
vim.keymap.set("n", "N", "'nN'[v:searchforward]", { expr = true, desc = "Prev search result" })
|
|
vim.keymap.set("x", "N", "'nN'[v:searchforward]", { expr = true, desc = "Prev search result" })
|
|
vim.keymap.set("o", "N", "'nN'[v:searchforward]", { expr = true, desc = "Prev search result" })
|
|
|
|
-- Save
|
|
vim.keymap.set("n", "<C-s>", "<ESC>:w<CR>", opts)
|
|
vim.keymap.set("i", "<C-s>", "<ESC>:w<CR>", opts)
|
|
|
|
-- Switch between buffers
|
|
vim.keymap.set("n", "<S-l>", ":bnext<CR>", opts)
|
|
vim.keymap.set("n", "<S-h>", ":bprevious<CR>", opts)
|
|
|
|
-- center after up and down movements
|
|
vim.keymap.set("n", "<C-u>", "<C-u>zz", opts)
|
|
vim.keymap.set("n", "<C-d>", "<C-d>zz", opts)
|
|
|
|
-- Indenting
|
|
vim.keymap.set("v", "<", "<gv", opts)
|
|
vim.keymap.set("v", ">", ">gv", opts)
|
|
|
|
-- move through quickfix list
|
|
vim.keymap.set("n", "<C-l>", ":cnext<cr>zz", { noremap = true, silent = true, desc = "Next quickfix" })
|
|
vim.keymap.set("n", "<C-h>", ":cprev<cr>zz", { noremap = true, silent = true, desc = "Prev quickfix" })
|
|
vim.keymap.set("n", "]q", ":cnext<cr>zz", { noremap = true, silent = true, desc = "Next quickfix" })
|
|
vim.keymap.set("n", "[q", ":cprev<cr>zz", { noremap = true, silent = true, desc = "Prev quickfix" })
|
|
|
|
-- thanks teej
|
|
vim.keymap.set("n", "<leader>xx", "<cmd>source %<CR>", { desc = "Source File" })
|
|
vim.keymap.set("n", "<leader>x", ":.lua<CR>", { desc = "Source Line" })
|
|
vim.keymap.set("v", "<leader>x", ":lua<CR>", { desc = "Source Selection" })
|
|
vim.keymap.set("n", "<leader>-", "<cmd>Oil<CR>")
|
|
vim.keymap.set("t", "<esc><esc>", "<c-\\><c-n>")
|
|
vim.keymap.set("n", "<leader>xt", "<cmd>PlenaryBustedFile %<cr>")
|
|
|
|
local angular_utils = require("lazyvim.utils.angular")
|
|
-- angular related
|
|
vim.keymap.set("n", "<leader>gs", function() angular_utils.toggle_between_spec_and_file() end)
|
|
|
|
local job_id = 0
|
|
vim.keymap.set("n", "<leader>Ts", function()
|
|
vim.cmd.vnew()
|
|
vim.cmd.term()
|
|
vim.cmd.wincmd("J")
|
|
vim.api.nvim_win_set_width(0, 5)
|
|
|
|
job_id = vim.bo.channel
|
|
end, { desc = "Small Terminal" })
|
|
|
|
vim.keymap.set("n", "<leader>gotest", function()
|
|
vim.fn.chansend(job_id, { "go test\r\n" })
|
|
end)
|
|
|
|
vim.keymap.set("n", "<leader>Tf", "<cmd>FloatTerminal<cr>")
|
|
|
|
-- Thanks Prime
|
|
vim.keymap.set("x", "<leader>p", [["_dP]])
|
|
vim.keymap.set({ "n", "v" }, "<leader>y", [["+y]])
|
|
vim.keymap.set("n", "<leader>Y", [["+Y]])
|
|
vim.keymap.set({ "n", "v" }, "<leader>d", [["_d]])
|
|
vim.keymap.set("n", "Q", "<nop>")
|
|
vim.keymap.set("n", "<leader>Tt", "<cmd>silent !tmux neww tmux-sessionizer<CR>")
|
|
vim.keymap.set("n", "<leader>S", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]], { desc = "search and replace" })
|
|
vim.keymap.set("n", "<leader>X", "<cmd>!chmod +x %<CR>", { silent = true, desc = "make me executable" })
|