mirror of
https://github.com/kogakure/dotfiles.git
synced 2026-02-03 20:25:30 +00:00
feat(nvim): add comments to keymaps
This commit is contained in:
@@ -1,161 +1,91 @@
|
||||
local opts = { noremap = true, silent = true }
|
||||
|
||||
--- Remap space as <leader> key
|
||||
vim.keymap.set("", "<space>", "<Nop>", opts)
|
||||
vim.keymap.set("", "<space>", "<Nop>", { desc = "Remap space as leader key", noremap = true, silent = true })
|
||||
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
-- Quick toggle between buffers
|
||||
vim.keymap.set("n", "<leader>j", ":b#<CR>", opts)
|
||||
vim.keymap.set("n", "<leader>j", ":b#<CR>", { desc = "Quick toggle between buffers", noremap = true, silent = true })
|
||||
|
||||
-- Add semicolon or comma to the end of the line
|
||||
vim.keymap.set("n", ";;", "A;<ESC>", opts)
|
||||
vim.keymap.set("n", ",,", "A,<ESC>", opts)
|
||||
vim.keymap.set("n", ";;", "A;<ESC>", { desc = "Add semicolon to the end of the line", noremap = true, silent = true })
|
||||
vim.keymap.set("n", ",,", "A,<ESC>", { desc = "Add comma to the end of the line", noremap = true, silent = true })
|
||||
|
||||
-- Maintain the cursor position when yanking a visual selection
|
||||
vim.keymap.set("v", "y", "myy`y", opts)
|
||||
vim.keymap.set("v", "y", "myy`y", { desc = "Maintain the cursor position when yanking a visual selection", noremap = true, silent = true })
|
||||
|
||||
-- Delete last character of line
|
||||
vim.keymap.set("n", "<leader>x", "$x", opts)
|
||||
vim.keymap.set("n", "<leader>x", "$x", { desc = "Delete last character of line", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "x", '"_x', { desc = "Do not yank with x", noremap = true, silent = true })
|
||||
|
||||
-- Do not yank with x
|
||||
vim.keymap.set("n", "x", '"_x', opts)
|
||||
vim.keymap.set("n", "+", "<C-a>", { desc = "Increment", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "-", "<C-x>", { desc = "Decrement", noremap = true, silent = true })
|
||||
|
||||
-- Open vim config in a new buffer, reload vim config
|
||||
vim.keymap.set("n", "<leader>ve", "<cmd>e $MYVIMRC<CR>", opts)
|
||||
vim.keymap.set("n", "<leader>vr", "<cmd>source $MYVIMRC<CR>", opts)
|
||||
vim.keymap.set("n", "ss", ":split<CR><C-w>w", { desc = "Open horizontal split", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "sv", ":vsplit<CR><C-w>w", { desc = "Open vertical split", noremap = true, silent = true })
|
||||
|
||||
-- Increment/decrement
|
||||
vim.keymap.set("n", "+", "<C-a>", opts)
|
||||
vim.keymap.set("n", "-", "<C-x>", opts)
|
||||
vim.keymap.set("n", "<leader>q", ":Bdelete<CR>", { desc = "Delete current buffer", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "<leader>X", ":bufdo bdelete<CR>", { desc = "Delete all buffers", noremap = true, silent = true })
|
||||
|
||||
-- Splits
|
||||
vim.keymap.set("n", "ss", ":split<CR><C-w>w", opts)
|
||||
vim.keymap.set("n", "sv", ":vsplit<CR><C-w>w", opts)
|
||||
vim.keymap.set("", "gf", ":edit <cfile><CR>", { desc = "Allow gf to open non-existent files", noremap = true, silent = true })
|
||||
|
||||
-- Select all
|
||||
vim.keymap.set("n", "<C-a>", "gg<S-v>G", opts)
|
||||
vim.keymap.set("v", "<", "<gv", { desc = "Reselect visual selection after indenting left", noremap = true, silent = true })
|
||||
vim.keymap.set("v", ">", ">gv", { desc = "Reselect visual selection after indenting right", noremap = true, silent = true })
|
||||
|
||||
-- Delete current buffer
|
||||
vim.keymap.set("n", "<leader>q", ":Bdelete<CR>", opts)
|
||||
|
||||
-- Delete all buffers
|
||||
vim.keymap.set("n", "<leader>X", ":bufdo bdelete<CR>", opts)
|
||||
|
||||
-- Allow gf to open non-existent files
|
||||
vim.keymap.set("", "gf", ":edit <cfile><CR>", opts)
|
||||
|
||||
-- Reselect visual selection after indenting
|
||||
vim.keymap.set("v", "<", "<gv", opts)
|
||||
vim.keymap.set("v", ">", ">gv", opts)
|
||||
|
||||
-- Set spell checker to `s`
|
||||
-- zg (good), zG (good temp), zw (wrong), zW (wrong temp)
|
||||
vim.keymap.set("n", "<leader>rs", ":set spell!<CR>", opts)
|
||||
vim.keymap.set("n", "<leader>rs", ":set spell!<CR>", { desc = "Activate spell checking", noremap = true, silent = true })
|
||||
|
||||
-- Switch off highlighting
|
||||
vim.keymap.set("n", "<leader>h", ":nohlsearch<CR>", opts)
|
||||
vim.keymap.set("n", "<leader>h", ":nohlsearch<CR>", { desc = "Switch off highlighting", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "<leader>l", ":set list!<CR>", { desc = "Toggle list", noremap = true, silent = true })
|
||||
|
||||
-- Toggle list
|
||||
vim.keymap.set("n", "<leader>l", ":set list!<CR>", opts)
|
||||
vim.keymap.set("n", "<leader>pf", "gg=G''", { desc = "Indent the whole source code", noremap = true, silent = true })
|
||||
|
||||
-- Indent the whole source code
|
||||
vim.keymap.set("n", "<leader>pf", "gg=G''", opts)
|
||||
vim.keymap.set("n", "'", "`", { desc = "Reverse the mark mapping", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "`", "'", { desc = "Reverse the mark mapping", noremap = true, silent = true })
|
||||
|
||||
-- Reverse the mark mapping
|
||||
vim.keymap.set("n", "'", "`", opts)
|
||||
vim.keymap.set("n", "`", "'", opts)
|
||||
vim.keymap.set("n", "gP", "`[v`]", { desc = "Visuall select of just pasted content", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "gy", "`[v`]y", { desc = "Visuall select of just pasted content", noremap = true, silent = true })
|
||||
|
||||
-- Visuall select of just pasted content
|
||||
vim.keymap.set("n", "gP", "`[v`]", opts)
|
||||
vim.keymap.set("n", "gy", "`[v`]y", opts)
|
||||
vim.keymap.set("n", "<expr> j", "(v:count == 0 ? 'gj' : 'j')", { desc = "Move by rows in wrapped mode (down)", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "<expr> k", "(v:count == 0 ? 'gk' : 'k')", { desc = "Move by rows in wrapped mode (up)", noremap = true, silent = true })
|
||||
|
||||
-- When text is wrapped, move by terminal rows, not lines, unless a count is provided
|
||||
vim.keymap.set("n", "<expr> j", "(v:count == 0 ? 'gj' : 'j')", opts)
|
||||
vim.keymap.set("n", "<expr> k", "(v:count == 0 ? 'gk' : 'k')", opts)
|
||||
vim.keymap.set("n", "<leader>?", ":execute 'vimgrep /'.@/.'/g %'<CR>:copen<CR>", { desc = "Open a quickfix window for the last search", noremap = true, silent = true })
|
||||
|
||||
-- Open a quickfix window for the last search
|
||||
vim.keymap.set("n", "<leader>?", ":execute 'vimgrep /'.@/.'/g %'<CR>:copen<CR>", opts)
|
||||
vim.keymap.set("n", "<C-e>", "3<C-e>", { desc = "Faster linewise scrolling (up)", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "<C-y>", "3<C-y>", { desc = "Faster linewise scrolling (down)", noremap = true, silent = true })
|
||||
|
||||
-- Faster linewise scrolling
|
||||
vim.keymap.set("n", "<C-e>", "3<C-e>", opts)
|
||||
vim.keymap.set("n", "<C-y>", "3<C-y>", opts)
|
||||
vim.keymap.set("n", "G", "Gzzzv", { desc = "Keep the window centered (end)", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "n", "nzzzv", { desc = "Keep the window centered (next search result)", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "N", "Nzzzv", { desc = "Keep the window centered (previous search result)", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "<C-d>", "<C-d>zz", { desc = "Keep the window centered (page down)", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "<C-u>", "<C-u>zz", { desc = "Keep the window centered (page up)", noremap = true, silent = true })
|
||||
|
||||
-- Keep the window centered
|
||||
vim.keymap.set("n", "G", "Gzzzv", opts)
|
||||
vim.keymap.set("n", "n", "nzzzv", opts)
|
||||
vim.keymap.set("n", "N", "Nzzzv", opts)
|
||||
vim.keymap.set("n", "<C-d>", "<C-d>zz", opts)
|
||||
vim.keymap.set("n", "<C-u>", "<C-u>zz", opts)
|
||||
vim.keymap.set("n", "Y", "yg$", { desc = "Copy to the end of the line", noremap = true, silent = true })
|
||||
|
||||
-- Copy to the end of the line
|
||||
vim.keymap.set("n", "Y", "yg$", opts)
|
||||
vim.keymap.set("n", "XX", ":qa<CR>", { desc = "Close all buffers", noremap = true, silent = true })
|
||||
|
||||
-- Close all buffers
|
||||
vim.keymap.set("n", "XX", ":qa<CR>", opts)
|
||||
vim.keymap.set("n", "gN", "o<ESC>k", { desc = "Add lines in NORMAL Mode (below)", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "gNN", "O<ESC>j", { desc = "Add lines in NORMAL Mode (above)", noremap = true, silent = true })
|
||||
|
||||
-- Add lines in NORMAL Mode
|
||||
vim.keymap.set("n", "gN", "o<ESC>k", opts)
|
||||
vim.keymap.set("n", "gNN", "O<ESC>j", opts)
|
||||
vim.keymap.set("n", "<leader>cf", ":cd %:p:h<CR>:pwd<CR>", { desc = "Change to the folder of the current file", noremap = true, silent = true })
|
||||
|
||||
-- Change to the folder of the current file
|
||||
vim.keymap.set("n", "<leader>cf", ":cd %:p:h<CR>:pwd<CR>", opts)
|
||||
vim.keymap.set("n", "<leader>rq", "gqip", { desc = "Reformat a line into a block", noremap = true, silent = true })
|
||||
|
||||
-- Reformat a line into a block
|
||||
vim.keymap.set("n", "<leader>rq", "gqip", opts)
|
||||
vim.keymap.set("n", "<leader>rqq", "vipJ", { desc = "Reformat a block into a line", noremap = true, silent = true })
|
||||
|
||||
-- Reformat a block into a line
|
||||
vim.keymap.set("n", "<leader>rqq", "vipJ", opts)
|
||||
vim.keymap.set("n", "<C-J>", "<C-W><C-K>", { desc = "Easier split navigation (down)", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "<C-K>", "<C-W><C-L>", { desc = "Easier split navigation (up)", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "<C-L>", "<C-W><C-H>", { desc = "Easier split navigation (right)", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "<C-H>", "<C-W><C-H>", { desc = "Easier split navigation (left)", noremap = true, silent = true })
|
||||
|
||||
-- Easier split navigation
|
||||
vim.keymap.set("n", "<C-J>", "<C-W><C-K>", opts)
|
||||
vim.keymap.set("n", "<C-K>", "<C-W><C-L>", opts)
|
||||
vim.keymap.set("n", "<C-L>", "<C-W><C-H>", opts)
|
||||
vim.keymap.set("n", "<C-H>", "<C-W><C-H>", opts)
|
||||
vim.keymap.set("n", "<leader>kw", ":SmartResizeMode<CR>", { desc = "Activate Smart Resize Mode", noremap = true, silent = true })
|
||||
|
||||
-- Resize with arrows
|
||||
vim.keymap.set("n", "<C-M-Up>", ":resize +2<CR>", opts)
|
||||
vim.keymap.set("n", "<C-M-Down>", ":resize -2<CR>", opts)
|
||||
vim.keymap.set("n", "<C-M-Left>", ":vertical resize +2<CR>", opts)
|
||||
vim.keymap.set("n", "<C-M-Right>", ":vertical resize -2<CR>", opts)
|
||||
vim.keymap.set("v", "<", "<gv", { desc = "Stay in indent mode (left)", noremap = true, silent = true })
|
||||
vim.keymap.set("v", ">", ">gv", { desc = "Stay in indent mode (right)", noremap = true, silent = true })
|
||||
|
||||
-- Stay in indent mode
|
||||
vim.keymap.set("v", "<", "<gv", opts)
|
||||
vim.keymap.set("v", ">", ">gv", opts)
|
||||
vim.keymap.set("v", "<S-k>", ":m .-2<CR>==", { desc = "Move text up", noremap = true, silent = true })
|
||||
vim.keymap.set("v", "<S-j>", ":m .+1<CR>==", { desc = "Move text down", noremap = true, silent = true })
|
||||
|
||||
-- Move text up and down
|
||||
vim.keymap.set("v", "<A-j>", ":m .+1<CR>==", opts)
|
||||
vim.keymap.set("v", "<A-k>", ":m .-2<CR>==", opts)
|
||||
vim.keymap.set("n", "<leader>ia", ":silent !open -a iA\\ Writer.app '%:p'<CR>", { desc = "Open in iA Writer", noremap = true, silent = true })
|
||||
|
||||
-- Navigate buffers
|
||||
--[[ vim.keymap.set("n", "<S-l>", ":bnext<CR>", opts) ]]
|
||||
--[[ vim.keymap.set("n", "<S-h>", ":bprevious<CR>", opts) ]]
|
||||
vim.keymap.set("n", "<leader>o", "<cmd>lua vim.lsp.buf.format()<CR>", { desc = "Format buffer with LSP", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "<leader>P", "<cmd>Prettier<CR>", { desc = "Format with Prettier", noremap = true, silent = true })
|
||||
|
||||
-- Remap Jump to Tag
|
||||
vim.keymap.set("n", "ü", "<C-]>", opts)
|
||||
vim.keymap.set("n", "Ü", "<C-O>", opts)
|
||||
|
||||
-- Open for Markdown in iA Writer
|
||||
vim.keymap.set("n", "<leader>ia", ":silent !open -a iA\\ Writer.app '%:p'<CR>", opts)
|
||||
|
||||
-- Custom Text-Objects
|
||||
vim.keymap.set("o", "il", ":<c-u>normal! $v^<CR>", opts)
|
||||
vim.keymap.set("x", "il", ":<c-u>normal! $v^<CR>", opts)
|
||||
vim.keymap.set("o", "al", ":<c-u>normal! $v0<CR>", opts)
|
||||
vim.keymap.set("x", "al", ":<c-u>normal! $v0<CR>", opts)
|
||||
|
||||
-- LSP formatting
|
||||
vim.keymap.set("n", "<leader>o", "<cmd>lua vim.lsp.buf.format()<CR>", opts)
|
||||
|
||||
-- Manual Prettier
|
||||
vim.keymap.set("n", "<leader>P", "<cmd>Prettier<CR>", opts)
|
||||
|
||||
-- Get the filename and path of current file
|
||||
vim.keymap.set("n", "<leader>kn", ":let @+=@%<CR>", opts)
|
||||
|
||||
-- Remove console.log statements
|
||||
vim.keymap.set("n", "<leader>kc", ":g/console.log/d<CR>", opts)
|
||||
|
||||
-- Convert Markdown to HTML and copy to Clipboard
|
||||
vim.keymap.set("v", "<leader>kp", ":'<,'> w !pandoc --no-highlight --wrap=none | pbcopy <CR>", opts)
|
||||
vim.keymap.set("n", "<leader>kn", ":let @+=@%<CR>", { desc = "Get the filename and path of current file", noremap = true, silent = true })
|
||||
vim.keymap.set("n", "<leader>kc", ":g/console.log/d<CR>", { desc = "Remove console.log statements", noremap = true, silent = true })
|
||||
vim.keymap.set("v", "<leader>kp", ":'<,'> w !pandoc --no-highlight --wrap=none | pbcopy <CR>", { desc = "Convert Markdown to HTML and copy to Clipboard", noremap = true, silent = true })
|
||||
|
||||
@@ -147,6 +147,7 @@ return packer.startup(function(use)
|
||||
use("kevinhwang91/nvim-bqf") -- Better Quickfix
|
||||
use({ "kevinhwang91/nvim-ufo", requires = "kevinhwang91/promise-async" }) -- Better folds
|
||||
use("debugloop/telescope-undo.nvim") -- Undo history
|
||||
use("mrjones2014/smart-splits.nvim") -- Smart splits
|
||||
|
||||
-- Editing Files
|
||||
use("windwp/nvim-autopairs") -- Autopairs, integrates with both cmp and treesitter
|
||||
|
||||
Reference in New Issue
Block a user