From e53ee104ec251b11b84045dec7782b9b7a03479f Mon Sep 17 00:00:00 2001 From: jdhao Date: Fri, 28 Jul 2023 22:27:54 +0200 Subject: feat: move lua conf under lua directory --- core/mappings.lua | 245 ------------------------------------------------------ 1 file changed, 245 deletions(-) delete mode 100644 core/mappings.lua (limited to 'core/mappings.lua') diff --git a/core/mappings.lua b/core/mappings.lua deleted file mode 100644 index 8a1e2e6..0000000 --- a/core/mappings.lua +++ /dev/null @@ -1,245 +0,0 @@ -local keymap = vim.keymap -local api = vim.api -local uv = vim.loop - --- Save key strokes (now we do not need to press shift to enter command mode). -keymap.set({ "n", "x" }, ";", ":") - --- Turn the word under cursor to upper case -keymap.set("i", "", "viwUea") - --- Turn the current word into title case -keymap.set("i", "", "b~lea") - --- Paste non-linewise text above or below current line, see https://stackoverflow.com/a/1346777/6064933 -keymap.set("n", "p", "m`op``", { desc = "paste below current line" }) -keymap.set("n", "P", "m`Op``", { desc = "paste above current line" }) - --- Shortcut for faster save and quit -keymap.set("n", "w", "update", { silent = true, desc = "save buffer" }) - --- Saves the file if modified and quit -keymap.set("n", "q", "x", { silent = true, desc = "quit current window" }) - --- Quit all opened buffers -keymap.set("n", "Q", "qa!", { silent = true, desc = "quit nvim" }) - --- Navigation in the location and quickfix list -keymap.set("n", "[l", "lpreviouszv", { silent = true, desc = "previous location item" }) -keymap.set("n", "]l", "lnextzv", { silent = true, desc = "next location item" }) - -keymap.set("n", "[L", "lfirstzv", { silent = true, desc = "first location item" }) -keymap.set("n", "]L", "llastzv", { silent = true, desc = "last location item" }) - -keymap.set("n", "[q", "cpreviouszv", { silent = true, desc = "previous qf item" }) -keymap.set("n", "]q", "cnextzv", { silent = true, desc = "next qf item" }) - -keymap.set("n", "[Q", "cfirstzv", { silent = true, desc = "first qf item" }) -keymap.set("n", "]Q", "clastzv", { silent = true, desc = "last qf item" }) - --- Close location list or quickfix list if they are present, see https://superuser.com/q/355325/736190 -keymap.set("n", [[\x]], "windo lclose cclose ", { - silent = true, - desc = "close qf and location list", -}) - --- Delete a buffer, without closing the window, see https://stackoverflow.com/q/4465095/6064933 -keymap.set("n", [[\d]], "bprevious bdelete #", { - silent = true, - desc = "delete buffer", -}) - --- Insert a blank line below or above current line (do not move the cursor), --- see https://stackoverflow.com/a/16136133/6064933 -keymap.set("n", "o", "printf('m`%so``', v:count1)", { - expr = true, - desc = "insert line below", -}) - -keymap.set("n", "O", "printf('m`%sO``', v:count1)", { - expr = true, - desc = "insert line above", -}) - --- Move the cursor based on physical lines, not the actual lines. -keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'", { expr = true }) -keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'", { expr = true }) -keymap.set("n", "^", "g^") -keymap.set("n", "0", "g0") - --- Do not include white space characters when using $ in visual mode, --- see https://vi.stackexchange.com/q/12607/15292 -keymap.set("x", "$", "g_") - --- Go to start or end of line easier -keymap.set({ "n", "x" }, "H", "^") -keymap.set({ "n", "x" }, "L", "g_") - --- Continuous visual shifting (does not exit Visual mode), `gv` means --- to reselect previous visual area, see https://superuser.com/q/310417/736190 -keymap.set("x", "<", "", ">gv") - --- Edit and reload nvim config file quickly -keymap.set("n", "ev", "tabnew $MYVIMRC tcd %:h", { - silent = true, - desc = "open init.lua", -}) - -keymap.set("n", "sv", function() - vim.cmd([[ - update $MYVIMRC - source $MYVIMRC - ]]) - vim.notify("Nvim config successfully reloaded!", vim.log.levels.INFO, { title = "nvim-config" }) -end, { - silent = true, - desc = "reload init.lua", -}) - --- Reselect the text that has just been pasted, see also https://stackoverflow.com/a/4317090/6064933. -keymap.set("n", "v", "printf('`[%s`]', getregtype()[0])", { - expr = true, - desc = "reselect last pasted area", -}) - --- Always use very magic mode for searching -keymap.set("n", "/", [[/\v]]) - --- Search in selected region --- xnoremap / :call feedkeys('/\%>'.(line("'<")-1).'l\%<'.(line("'>")+1)."l") - --- Change current working directory locally and print cwd after that, --- see https://vim.fandom.com/wiki/Set_working_directory_to_the_current_file -keymap.set("n", "cd", "lcd %:p:hpwd", { desc = "change cwd" }) - --- Use Esc to quit builtin terminal -keymap.set("t", "", [[]]) - --- Toggle spell checking -keymap.set("n", "", "set spell!", { desc = "toggle spell" }) -keymap.set("i", "", "set spell!", { desc = "toggle spell" }) - --- Change text without putting it into the vim register, --- see https://stackoverflow.com/q/54255/6064933 -keymap.set("n", "c", '"_c') -keymap.set("n", "C", '"_C') -keymap.set("n", "cc", '"_cc') -keymap.set("x", "c", '"_c') - --- Remove trailing whitespace characters -keymap.set("n", "", "StripTrailingWhitespace", { desc = "remove trailing space" }) - --- check the syntax group of current cursor position -keymap.set("n", "st", "call utils#SynGroup()", { desc = "check syntax group" }) - --- Copy entire buffer. -keymap.set("n", "y", "%yank", { desc = "yank entire buffer" }) - --- Toggle cursor column -keymap.set("n", "cl", "call utils#ToggleCursorCol()", { desc = "toggle cursor column" }) - --- Move current line up and down -keymap.set("n", "", 'call utils#SwitchLine(line("."), "up")', { desc = "move line up" }) -keymap.set("n", "", 'call utils#SwitchLine(line("."), "down")', { desc = "move line down" }) - --- Move current visual-line selection up and down -keymap.set("x", "", 'call utils#MoveSelection("up")', { desc = "move selection up" }) - -keymap.set("x", "", 'call utils#MoveSelection("down")', { desc = "move selection down" }) - --- Replace visual selection with text in register, but not contaminate the register, --- see also https://stackoverflow.com/q/10723700/6064933. -keymap.set("x", "p", '"_cp') - --- Go to a certain buffer -keymap.set("n", "gb", 'call buf_utils#GoToBuffer(v:count, "forward")', { - desc = "go to buffer (forward)", -}) -keymap.set("n", "gB", 'call buf_utils#GoToBuffer(v:count, "backward")', { - desc = "go to buffer (backward)", -}) - --- Switch windows -keymap.set("n", "", "h") -keymap.set("n", "", "l") -keymap.set("n", "", "k") -keymap.set("n", "", "j") - --- Text objects for URL -keymap.set({ "x", "o" }, "iu", "call text_obj#URL()", { desc = "URL text object" }) - --- Text objects for entire buffer -keymap.set({ "x", "o" }, "iB", "call text_obj#Buffer()", { desc = "buffer text object" }) - --- Do not move my cursor when joining lines. -keymap.set("n", "J", function() - vim.cmd([[ - normal! mzJ`z - delmarks z - ]]) -end, { - desc = "join line", -}) - -keymap.set("n", "gJ", function() - -- we must use `normal!`, otherwise it will trigger recursive mapping - vim.cmd([[ - normal! zmgJ`z - delmarks z - ]]) -end, { - desc = "join visual lines", -}) - --- Break inserted text into smaller undo units when we insert some punctuation chars. -local undo_ch = { ",", ".", "!", "?", ";", ":" } -for _, ch in ipairs(undo_ch) do - keymap.set("i", ch, ch .. "u") -end - --- insert semicolon in the end -keymap.set("i", "", "miA;`ii") - --- Keep cursor position after yanking -keymap.set("n", "y", "myy") - -api.nvim_create_autocmd("TextYankPost", { - pattern = "*", - group = api.nvim_create_augroup("restore_after_yank", { clear = true }), - callback = function() - vim.cmd([[ - silent! normal! `y - silent! delmarks y - ]]) - end, -}) - --- Go to the beginning and end of current line in insert mode quickly -keymap.set("i", "", "") -keymap.set("i", "", "") - --- Go to beginning of command in command-line mode -keymap.set("c", "", "") - --- Delete the character to the right of the cursor -keymap.set("i", "", "") - -keymap.set("n", "cb", function() - local cnt = 0 - local blink_times = 7 - local timer = uv.new_timer() - - timer:start(0, 100, vim.schedule_wrap(function() - vim.cmd[[ - set cursorcolumn! - set cursorline! - ]] - - if cnt == blink_times then - timer:close() - end - - cnt = cnt + 1 - end)) -end) -- cgit v1.2.3