feat(nvim): add comments to keymaps

This commit is contained in:
Stefan Imhoff
2022-12-18 18:29:52 +01:00
parent 52c1f1d704
commit f0c4a19c07
4 changed files with 65 additions and 126 deletions

7
.stylua.toml Normal file
View File

@@ -0,0 +1,7 @@
column_width = 200
line_endings = "Unix"
indent_type = "Tabs"
indent_width = 4
quote_style = "AutoPreferDouble"
call_parentheses = "Always"
collapse_simple_statement = "Never"

View File

@@ -18,6 +18,7 @@ initial_window_width 1000
initial_window_height 650 initial_window_height 650
enable_audio_bell no enable_audio_bell no
macos_traditional_fullscreen yes macos_traditional_fullscreen yes
macos_option_as_alt both
allow_remote_control socket-only allow_remote_control socket-only
listen_on unix:/tmp/kitty listen_on unix:/tmp/kitty

View File

@@ -1,161 +1,91 @@
local opts = { noremap = true, silent = true } vim.keymap.set("", "<space>", "<Nop>", { desc = "Remap space as leader key", noremap = true, silent = true })
--- Remap space as <leader> key
vim.keymap.set("", "<space>", "<Nop>", opts)
vim.g.mapleader = " " vim.g.mapleader = " "
vim.g.maplocalleader = " " vim.g.maplocalleader = " "
-- Quick toggle between buffers vim.keymap.set("n", "<leader>j", ":b#<CR>", { desc = "Quick toggle between buffers", noremap = true, silent = true })
vim.keymap.set("n", "<leader>j", ":b#<CR>", opts)
-- Add semicolon or comma to the end of the line 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>", opts) vim.keymap.set("n", ",,", "A,<ESC>", { desc = "Add comma to the end of the line", noremap = true, silent = true })
vim.keymap.set("n", ",,", "A,<ESC>", opts)
-- Maintain the cursor position when yanking a visual selection vim.keymap.set("v", "y", "myy`y", { desc = "Maintain the cursor position when yanking a visual selection", noremap = true, silent = true })
vim.keymap.set("v", "y", "myy`y", opts)
-- Delete last character of line vim.keymap.set("n", "<leader>x", "$x", { desc = "Delete last character of line", noremap = true, silent = true })
vim.keymap.set("n", "<leader>x", "$x", opts) 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", "+", "<C-a>", { desc = "Increment", noremap = true, silent = true })
vim.keymap.set("n", "x", '"_x', opts) 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", "ss", ":split<CR><C-w>w", { desc = "Open horizontal split", noremap = true, silent = true })
vim.keymap.set("n", "<leader>ve", "<cmd>e $MYVIMRC<CR>", opts) vim.keymap.set("n", "sv", ":vsplit<CR><C-w>w", { desc = "Open vertical split", noremap = true, silent = true })
vim.keymap.set("n", "<leader>vr", "<cmd>source $MYVIMRC<CR>", opts)
-- Increment/decrement vim.keymap.set("n", "<leader>q", ":Bdelete<CR>", { desc = "Delete current buffer", noremap = true, silent = true })
vim.keymap.set("n", "+", "<C-a>", opts) vim.keymap.set("n", "<leader>X", ":bufdo bdelete<CR>", { desc = "Delete all buffers", noremap = true, silent = true })
vim.keymap.set("n", "-", "<C-x>", opts)
-- Splits vim.keymap.set("", "gf", ":edit <cfile><CR>", { desc = "Allow gf to open non-existent files", noremap = true, silent = true })
vim.keymap.set("n", "ss", ":split<CR><C-w>w", opts)
vim.keymap.set("n", "sv", ":vsplit<CR><C-w>w", opts)
-- Select all vim.keymap.set("v", "<", "<gv", { desc = "Reselect visual selection after indenting left", noremap = true, silent = true })
vim.keymap.set("n", "<C-a>", "gg<S-v>G", opts) 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) -- 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>", { desc = "Switch off highlighting", noremap = true, silent = true })
vim.keymap.set("n", "<leader>h", ":nohlsearch<CR>", opts) vim.keymap.set("n", "<leader>l", ":set list!<CR>", { desc = "Toggle list", noremap = true, silent = true })
-- Toggle list vim.keymap.set("n", "<leader>pf", "gg=G''", { desc = "Indent the whole source code", noremap = true, silent = true })
vim.keymap.set("n", "<leader>l", ":set list!<CR>", opts)
-- Indent the whole source code vim.keymap.set("n", "'", "`", { desc = "Reverse the mark mapping", noremap = true, silent = true })
vim.keymap.set("n", "<leader>pf", "gg=G''", opts) vim.keymap.set("n", "`", "'", { desc = "Reverse the mark mapping", noremap = true, silent = true })
-- Reverse the mark mapping vim.keymap.set("n", "gP", "`[v`]", { desc = "Visuall select of just pasted content", noremap = true, silent = true })
vim.keymap.set("n", "'", "`", opts) vim.keymap.set("n", "gy", "`[v`]y", { desc = "Visuall select of just pasted content", noremap = true, silent = true })
vim.keymap.set("n", "`", "'", opts)
-- Visuall select of just pasted content 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", "gP", "`[v`]", opts) vim.keymap.set("n", "<expr> k", "(v:count == 0 ? 'gk' : 'k')", { desc = "Move by rows in wrapped mode (up)", noremap = true, silent = true })
vim.keymap.set("n", "gy", "`[v`]y", opts)
-- When text is wrapped, move by terminal rows, not lines, unless a count is provided vim.keymap.set("n", "<leader>?", ":execute 'vimgrep /'.@/.'/g %'<CR>:copen<CR>", { desc = "Open a quickfix window for the last search", noremap = true, silent = true })
vim.keymap.set("n", "<expr> j", "(v:count == 0 ? 'gj' : 'j')", opts)
vim.keymap.set("n", "<expr> k", "(v:count == 0 ? 'gk' : 'k')", opts)
-- Open a quickfix window for the last search vim.keymap.set("n", "<C-e>", "3<C-e>", { desc = "Faster linewise scrolling (up)", noremap = true, silent = true })
vim.keymap.set("n", "<leader>?", ":execute 'vimgrep /'.@/.'/g %'<CR>:copen<CR>", opts) 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", "G", "Gzzzv", { desc = "Keep the window centered (end)", noremap = true, silent = true })
vim.keymap.set("n", "<C-e>", "3<C-e>", opts) vim.keymap.set("n", "n", "nzzzv", { desc = "Keep the window centered (next search result)", noremap = true, silent = true })
vim.keymap.set("n", "<C-y>", "3<C-y>", opts) 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", "Y", "yg$", { desc = "Copy to the end of the line", noremap = true, silent = true })
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)
-- Copy to the end of the line vim.keymap.set("n", "XX", ":qa<CR>", { desc = "Close all buffers", noremap = true, silent = true })
vim.keymap.set("n", "Y", "yg$", opts)
-- Close all buffers vim.keymap.set("n", "gN", "o<ESC>k", { desc = "Add lines in NORMAL Mode (below)", noremap = true, silent = true })
vim.keymap.set("n", "XX", ":qa<CR>", opts) 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", "<leader>cf", ":cd %:p:h<CR>:pwd<CR>", { desc = "Change to the folder of the current file", noremap = true, silent = true })
vim.keymap.set("n", "gN", "o<ESC>k", opts)
vim.keymap.set("n", "gNN", "O<ESC>j", opts)
-- Change to the folder of the current file vim.keymap.set("n", "<leader>rq", "gqip", { desc = "Reformat a line into a block", noremap = true, silent = true })
vim.keymap.set("n", "<leader>cf", ":cd %:p:h<CR>:pwd<CR>", opts)
-- Reformat a line into a block vim.keymap.set("n", "<leader>rqq", "vipJ", { desc = "Reformat a block into a line", noremap = true, silent = true })
vim.keymap.set("n", "<leader>rq", "gqip", opts)
-- Reformat a block into a line vim.keymap.set("n", "<C-J>", "<C-W><C-K>", { desc = "Easier split navigation (down)", noremap = true, silent = true })
vim.keymap.set("n", "<leader>rqq", "vipJ", opts) 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", "<leader>kw", ":SmartResizeMode<CR>", { desc = "Activate Smart Resize Mode", noremap = true, silent = true })
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)
-- Resize with arrows vim.keymap.set("v", "<", "<gv", { desc = "Stay in indent mode (left)", noremap = true, silent = true })
vim.keymap.set("n", "<C-M-Up>", ":resize +2<CR>", opts) vim.keymap.set("v", ">", ">gv", { desc = "Stay in indent mode (right)", noremap = true, silent = true })
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)
-- Stay in indent mode vim.keymap.set("v", "<S-k>", ":m .-2<CR>==", { desc = "Move text up", noremap = true, silent = true })
vim.keymap.set("v", "<", "<gv", opts) vim.keymap.set("v", "<S-j>", ":m .+1<CR>==", { desc = "Move text down", noremap = true, silent = true })
vim.keymap.set("v", ">", ">gv", opts)
-- Move text up and down vim.keymap.set("n", "<leader>ia", ":silent !open -a iA\\ Writer.app '%:p'<CR>", { desc = "Open in iA Writer", noremap = true, silent = true })
vim.keymap.set("v", "<A-j>", ":m .+1<CR>==", opts)
vim.keymap.set("v", "<A-k>", ":m .-2<CR>==", opts)
-- Navigate buffers 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", "<S-l>", ":bnext<CR>", opts) ]] vim.keymap.set("n", "<leader>P", "<cmd>Prettier<CR>", { desc = "Format with Prettier", noremap = true, silent = true })
--[[ vim.keymap.set("n", "<S-h>", ":bprevious<CR>", opts) ]]
-- Remap Jump to Tag 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", "ü", "<C-]>", opts) vim.keymap.set("n", "<leader>kc", ":g/console.log/d<CR>", { desc = "Remove console.log statements", noremap = true, silent = true })
vim.keymap.set("n", "Ü", "<C-O>", opts) 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 })
-- 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)

View File

@@ -147,6 +147,7 @@ return packer.startup(function(use)
use("kevinhwang91/nvim-bqf") -- Better Quickfix use("kevinhwang91/nvim-bqf") -- Better Quickfix
use({ "kevinhwang91/nvim-ufo", requires = "kevinhwang91/promise-async" }) -- Better folds use({ "kevinhwang91/nvim-ufo", requires = "kevinhwang91/promise-async" }) -- Better folds
use("debugloop/telescope-undo.nvim") -- Undo history use("debugloop/telescope-undo.nvim") -- Undo history
use("mrjones2014/smart-splits.nvim") -- Smart splits
-- Editing Files -- Editing Files
use("windwp/nvim-autopairs") -- Autopairs, integrates with both cmp and treesitter use("windwp/nvim-autopairs") -- Autopairs, integrates with both cmp and treesitter