local misc = require("core.misc") local map = misc.map -- vim binds vim.g.mapleader = " " -- set leader key map("x", "p", [["_dP]], { desc = "Greatest remap of all time." }) map("n", "", ":nohlsearch:echo", { desc = "Clear search." }) -- move selected text up/down map("v", "", ":m '<-2gv=gv", { desc = "Move selected text up." }) map("v", "", ":m '>+1gv=gv", { desc = "Move selected text down." }) -- the cursor STAYS IN THE MIDDLE map("n", "", "mzJ`zdelm z") -- when combining lines map("n", "n", "nzzzv") -- when searching map("n", "N", "Nzzzv") map("n", "", "zzzv") -- half page jumping map("n", "", "zzzv") map({ "n", "i" }, "", "") map("n", "x", function() -- execute order 111 local fn = vim.fn.expand("%:p") if vim.fn.getftype(fn) == "file" then local perm = vim.fn.getfperm(fn) if string.match(perm, "x", 3) then vim.notify("Removed executable flags", vim.log.levels.INFO, { title = misc.appid }) vim.fn.setfperm(fn, string.sub(fn, 1, 2).."-"..string.sub(fn, 4, 5).."-"..string.sub(fn, 7, 8).."-") else vim.notify("Add executable flags", vim.log.levels.INFO, { title = misc.appid }) vim.fn.setfperm(fn, string.sub(fn, 1, 2).."x"..string.sub(fn, 4, 5).."x"..string.sub(fn, 7, 8).."x") end else vim.notify("File doesn't exist", vim.log.levels.INFO, { title = misc.appid }) end end, { desc = "toggle executable flag of the file" }) -- good spell suggestion ui -- (stolen from https://github.com/neovim/neovim/pull/25833) vim.keymap.set("n", "z=", function() local spell_on_choice = vim.schedule_wrap(function(_, idx) if type(idx) == "number" then vim.cmd("normal! "..idx.."z=") end end) if vim.v.count > 0 then spell_on_choice(nil, vim.v.count) return end local cword = vim.fn.expand("") local prompt = "Change "..vim.inspect(cword).." to:" vim.ui.select(vim.fn.spellsuggest(cword, vim.o.lines), { prompt = prompt }, spell_on_choice) end, { desc = "Shows spelling suggestions" }) -- quickfix map("n", "", "cnext") map("n", "", "cprev") map("n", "", "cclose") -- man pages map("n", "", "Man")