diff --git a/.stylua.toml b/.stylua.toml new file mode 100644 index 0000000..a58d297 --- /dev/null +++ b/.stylua.toml @@ -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" diff --git a/kitty/kitty.conf b/kitty/kitty.conf index 2d687f5..458c848 100644 --- a/kitty/kitty.conf +++ b/kitty/kitty.conf @@ -18,6 +18,7 @@ initial_window_width 1000 initial_window_height 650 enable_audio_bell no macos_traditional_fullscreen yes +macos_option_as_alt both allow_remote_control socket-only listen_on unix:/tmp/kitty diff --git a/nvim/lua/kogakure/keymaps.lua b/nvim/lua/kogakure/keymaps.lua index 39847da..e625232 100644 --- a/nvim/lua/kogakure/keymaps.lua +++ b/nvim/lua/kogakure/keymaps.lua @@ -1,161 +1,91 @@ -local opts = { noremap = true, silent = true } - ---- Remap space as key -vim.keymap.set("", "", "", opts) +vim.keymap.set("", "", "", { desc = "Remap space as leader key", noremap = true, silent = true }) vim.g.mapleader = " " vim.g.maplocalleader = " " --- Quick toggle between buffers -vim.keymap.set("n", "j", ":b#", opts) +vim.keymap.set("n", "j", ":b#", { desc = "Quick toggle between buffers", noremap = true, silent = true }) --- Add semicolon or comma to the end of the line -vim.keymap.set("n", ";;", "A;", opts) -vim.keymap.set("n", ",,", "A,", opts) +vim.keymap.set("n", ";;", "A;", { desc = "Add semicolon to the end of the line", noremap = true, silent = true }) +vim.keymap.set("n", ",,", "A,", { 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", "x", "$x", opts) +vim.keymap.set("n", "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", "+", "", { desc = "Increment", noremap = true, silent = true }) +vim.keymap.set("n", "-", "", { desc = "Decrement", noremap = true, silent = true }) --- Open vim config in a new buffer, reload vim config -vim.keymap.set("n", "ve", "e $MYVIMRC", opts) -vim.keymap.set("n", "vr", "source $MYVIMRC", opts) +vim.keymap.set("n", "ss", ":splitw", { desc = "Open horizontal split", noremap = true, silent = true }) +vim.keymap.set("n", "sv", ":vsplitw", { desc = "Open vertical split", noremap = true, silent = true }) --- Increment/decrement -vim.keymap.set("n", "+", "", opts) -vim.keymap.set("n", "-", "", opts) +vim.keymap.set("n", "q", ":Bdelete", { desc = "Delete current buffer", noremap = true, silent = true }) +vim.keymap.set("n", "X", ":bufdo bdelete", { desc = "Delete all buffers", noremap = true, silent = true }) --- Splits -vim.keymap.set("n", "ss", ":splitw", opts) -vim.keymap.set("n", "sv", ":vsplitw", opts) +vim.keymap.set("", "gf", ":edit ", { desc = "Allow gf to open non-existent files", noremap = true, silent = true }) --- Select all -vim.keymap.set("n", "", "ggG", opts) +vim.keymap.set("v", "<", "", ">gv", { desc = "Reselect visual selection after indenting right", noremap = true, silent = true }) --- Delete current buffer -vim.keymap.set("n", "q", ":Bdelete", opts) - --- Delete all buffers -vim.keymap.set("n", "X", ":bufdo bdelete", opts) - --- Allow gf to open non-existent files -vim.keymap.set("", "gf", ":edit ", opts) - --- Reselect visual selection after indenting -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", "rs", ":set spell!", opts) +vim.keymap.set("n", "rs", ":set spell!", { desc = "Activate spell checking", noremap = true, silent = true }) --- Switch off highlighting -vim.keymap.set("n", "h", ":nohlsearch", opts) +vim.keymap.set("n", "h", ":nohlsearch", { desc = "Switch off highlighting", noremap = true, silent = true }) +vim.keymap.set("n", "l", ":set list!", { desc = "Toggle list", noremap = true, silent = true }) --- Toggle list -vim.keymap.set("n", "l", ":set list!", opts) +vim.keymap.set("n", "pf", "gg=G''", { desc = "Indent the whole source code", noremap = true, silent = true }) --- Indent the whole source code -vim.keymap.set("n", "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", " j", "(v:count == 0 ? 'gj' : 'j')", { desc = "Move by rows in wrapped mode (down)", noremap = true, silent = true }) +vim.keymap.set("n", " 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", " j", "(v:count == 0 ? 'gj' : 'j')", opts) -vim.keymap.set("n", " k", "(v:count == 0 ? 'gk' : 'k')", opts) +vim.keymap.set("n", "?", ":execute 'vimgrep /'.@/.'/g %':copen", { 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", "?", ":execute 'vimgrep /'.@/.'/g %':copen", opts) +vim.keymap.set("n", "", "3", { desc = "Faster linewise scrolling (up)", noremap = true, silent = true }) +vim.keymap.set("n", "", "3", { desc = "Faster linewise scrolling (down)", noremap = true, silent = true }) --- Faster linewise scrolling -vim.keymap.set("n", "", "3", opts) -vim.keymap.set("n", "", "3", 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", "", "zz", { desc = "Keep the window centered (page down)", noremap = true, silent = true }) +vim.keymap.set("n", "", "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", "", "zz", opts) -vim.keymap.set("n", "", "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", { desc = "Close all buffers", noremap = true, silent = true }) --- Close all buffers -vim.keymap.set("n", "XX", ":qa", opts) +vim.keymap.set("n", "gN", "ok", { desc = "Add lines in NORMAL Mode (below)", noremap = true, silent = true }) +vim.keymap.set("n", "gNN", "Oj", { desc = "Add lines in NORMAL Mode (above)", noremap = true, silent = true }) --- Add lines in NORMAL Mode -vim.keymap.set("n", "gN", "ok", opts) -vim.keymap.set("n", "gNN", "Oj", opts) +vim.keymap.set("n", "cf", ":cd %:p:h:pwd", { 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", "cf", ":cd %:p:h:pwd", opts) +vim.keymap.set("n", "rq", "gqip", { desc = "Reformat a line into a block", noremap = true, silent = true }) --- Reformat a line into a block -vim.keymap.set("n", "rq", "gqip", opts) +vim.keymap.set("n", "rqq", "vipJ", { desc = "Reformat a block into a line", noremap = true, silent = true }) --- Reformat a block into a line -vim.keymap.set("n", "rqq", "vipJ", opts) +vim.keymap.set("n", "", "", { desc = "Easier split navigation (down)", noremap = true, silent = true }) +vim.keymap.set("n", "", "", { desc = "Easier split navigation (up)", noremap = true, silent = true }) +vim.keymap.set("n", "", "", { desc = "Easier split navigation (right)", noremap = true, silent = true }) +vim.keymap.set("n", "", "", { desc = "Easier split navigation (left)", noremap = true, silent = true }) --- Easier split navigation -vim.keymap.set("n", "", "", opts) -vim.keymap.set("n", "", "", opts) -vim.keymap.set("n", "", "", opts) -vim.keymap.set("n", "", "", opts) +vim.keymap.set("n", "kw", ":SmartResizeMode", { desc = "Activate Smart Resize Mode", noremap = true, silent = true }) --- Resize with arrows -vim.keymap.set("n", "", ":resize +2", opts) -vim.keymap.set("n", "", ":resize -2", opts) -vim.keymap.set("n", "", ":vertical resize +2", opts) -vim.keymap.set("n", "", ":vertical resize -2", opts) +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", "", ":m .-2==", { desc = "Move text up", noremap = true, silent = true }) +vim.keymap.set("v", "", ":m .+1==", { desc = "Move text down", noremap = true, silent = true }) --- Move text up and down -vim.keymap.set("v", "", ":m .+1==", opts) -vim.keymap.set("v", "", ":m .-2==", opts) +vim.keymap.set("n", "ia", ":silent !open -a iA\\ Writer.app '%:p'", { desc = "Open in iA Writer", noremap = true, silent = true }) --- Navigate buffers ---[[ vim.keymap.set("n", "", ":bnext", opts) ]] ---[[ vim.keymap.set("n", "", ":bprevious", opts) ]] +vim.keymap.set("n", "o", "lua vim.lsp.buf.format()", { desc = "Format buffer with LSP", noremap = true, silent = true }) +vim.keymap.set("n", "P", "Prettier", { desc = "Format with Prettier", noremap = true, silent = true }) --- Remap Jump to Tag -vim.keymap.set("n", "ü", "", opts) -vim.keymap.set("n", "Ü", "", opts) - --- Open for Markdown in iA Writer -vim.keymap.set("n", "ia", ":silent !open -a iA\\ Writer.app '%:p'", opts) - --- Custom Text-Objects -vim.keymap.set("o", "il", ":normal! $v^", opts) -vim.keymap.set("x", "il", ":normal! $v^", opts) -vim.keymap.set("o", "al", ":normal! $v0", opts) -vim.keymap.set("x", "al", ":normal! $v0", opts) - --- LSP formatting -vim.keymap.set("n", "o", "lua vim.lsp.buf.format()", opts) - --- Manual Prettier -vim.keymap.set("n", "P", "Prettier", opts) - --- Get the filename and path of current file -vim.keymap.set("n", "kn", ":let @+=@%", opts) - --- Remove console.log statements -vim.keymap.set("n", "kc", ":g/console.log/d", opts) - --- Convert Markdown to HTML and copy to Clipboard -vim.keymap.set("v", "kp", ":'<,'> w !pandoc --no-highlight --wrap=none | pbcopy ", opts) +vim.keymap.set("n", "kn", ":let @+=@%", { desc = "Get the filename and path of current file", noremap = true, silent = true }) +vim.keymap.set("n", "kc", ":g/console.log/d", { desc = "Remove console.log statements", noremap = true, silent = true }) +vim.keymap.set("v", "kp", ":'<,'> w !pandoc --no-highlight --wrap=none | pbcopy ", { desc = "Convert Markdown to HTML and copy to Clipboard", noremap = true, silent = true }) diff --git a/nvim/lua/kogakure/plugins.lua b/nvim/lua/kogakure/plugins.lua index 440bcc5..158447b 100644 --- a/nvim/lua/kogakure/plugins.lua +++ b/nvim/lua/kogakure/plugins.lua @@ -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