From 9440c6ef57ae8b9fabcb3ad22874f36728fcecef Mon Sep 17 00:00:00 2001 From: david Date: Mon, 18 Aug 2025 16:39:41 -0500 Subject: [PATCH] Add more neovim configuration --- .../.config/nvim/lua/david_standard/init.lua | 9 ++ .../david_standard/plugin_key_mappings.lua | 10 +- .../plugins_lazy/conform_formatter.lua | 17 +++ .../nvim/lua/david_standard/remaps.lua | 105 ++++++------------ .../nvim/lua/david_standard/settings.lua | 56 ++++++---- 5 files changed, 105 insertions(+), 92 deletions(-) create mode 100644 src_files/.config/nvim/lua/david_standard/plugins_lazy/conform_formatter.lua diff --git a/src_files/.config/nvim/lua/david_standard/init.lua b/src_files/.config/nvim/lua/david_standard/init.lua index 33e7f63..eaedce9 100644 --- a/src_files/.config/nvim/lua/david_standard/init.lua +++ b/src_files/.config/nvim/lua/david_standard/init.lua @@ -1,6 +1,15 @@ +vim.api.nvim_create_augroup("DavidStandardGroup", { clear = true }) +local dsgAutocmd = vim.api.nvim_create_autocmd + require("david_standard.settings") require("david_standard.remaps") require("david_standard.lazy_nvim") require("david_standard.plugin_key_mappings") require("david_standard.colorscheme_settings") + +dsgAutocmd({"BufWritePre"}, { + group = DavidStandardGroup, + pattern = "*", + command = [[%s/\s\+$//e]], +}) diff --git a/src_files/.config/nvim/lua/david_standard/plugin_key_mappings.lua b/src_files/.config/nvim/lua/david_standard/plugin_key_mappings.lua index 2f64147..89c3f61 100644 --- a/src_files/.config/nvim/lua/david_standard/plugin_key_mappings.lua +++ b/src_files/.config/nvim/lua/david_standard/plugin_key_mappings.lua @@ -31,6 +31,14 @@ vim.keymap.set("n", "u", vim.cmd.UndotreeToggle) -- fugitive (git integration) vim.keymap.set("n", "gG", vim.cmd.Git) -vim.keymap.set("n", "gg", ":Git --paginate ") -- shortcut, arbitrary git commands +vim.keymap.set("n", "gg", ":Git ") -- shortcut, arbitrary git commands +vim.keymap.set("n", "ga", function() vim.cmd.Git({ "add %"}) end) vim.keymap.set("n", "gs", function() vim.cmd.Git({ "--paginate status" }) end) vim.keymap.set("n", "gc", function() vim.cmd.Git({ "commit -a" }) end) + +-- conform (formatter) +-- TODO: uncomment this once i set up the plugin +-- vim.keymap.set("n", "fmt", function() +-- require("conform").format({ bufnr = 0 }) +-- end) + diff --git a/src_files/.config/nvim/lua/david_standard/plugins_lazy/conform_formatter.lua b/src_files/.config/nvim/lua/david_standard/plugins_lazy/conform_formatter.lua new file mode 100644 index 0000000..1c81b2e --- /dev/null +++ b/src_files/.config/nvim/lua/david_standard/plugins_lazy/conform_formatter.lua @@ -0,0 +1,17 @@ +-- TODO: set this up +return { +-- 'stevearc/conform.nvim', +-- opts = {}, +-- config = function() +-- require("conform").setup({ +-- formatters_by_ft = { +-- lua = { "stylua" }, +-- go = { "gofmt" }, +-- javascript = { "prettier" }, +-- typescript = { "prettier" }, +-- elixir = { "mix" } +-- } +-- }) +-- end +} + diff --git a/src_files/.config/nvim/lua/david_standard/remaps.lua b/src_files/.config/nvim/lua/david_standard/remaps.lua index de1da84..91da789 100644 --- a/src_files/.config/nvim/lua/david_standard/remaps.lua +++ b/src_files/.config/nvim/lua/david_standard/remaps.lua @@ -1,82 +1,51 @@ -vim.keymap.set("n", "d", vim.cmd.Ex) +-- explore the directory of the current file (using netrw) +vim.keymap.set("n", "n", vim.cmd.Ex) --- vim.keymap.set("v", "J", ":m '>+1gv=gv") --- vim.keymap.set("v", "K", ":m '<-2gv=gv") +-- move selected lines up or down +vim.keymap.set("v", "J", ":m '>+1gv") +vim.keymap.set("v", "K", ":m '<-2gv") --- vim.api.nvim_set_keymap("n", "tf", "PlenaryTestFile", { noremap = false, silent = false }) +-- vertically center cursor with half-page jumps iterating search results +vim.keymap.set("n", "", "zz") +vim.keymap.set("n", "", "zz") +vim.keymap.set("n", "n", "nzzzv") +vim.keymap.set("n", "N", "Nzzzv") --- vim.keymap.set("n", "J", "mzJ`z") --- vim.keymap.set("n", "", "zz") --- vim.keymap.set("n", "", "zz") --- vim.keymap.set("n", "n", "nzzzv") --- vim.keymap.set("n", "N", "Nzzzv") --- vim.keymap.set("n", "=ap", "ma=ap'a") --- vim.keymap.set("n", "zig", "LspRestart") +-- maintain cursor position after paragraph formatting +vim.keymap.set("n", "=ap", "ma=ap'a") --- vim.keymap.set("n", "vwm", function() --- require("vim-with-me").StartVimWithMe() --- end) --- vim.keymap.set("n", "svwm", function() --- require("vim-with-me").StopVimWithMe() --- end) +-- shortcuts for deleting into the void register +vim.keymap.set({ "n", "v" }, "d", "\"_d") +vim.keymap.set("x", "p", [["_dP]]) -- replace selected text, keep main register --- -- greatest remap ever --- vim.keymap.set("x", "p", [["_dP]]) +-- shortcuts for using + register (system clipboard) +vim.keymap.set({ "n", "v" }, "y", [["+y]]) +vim.keymap.set("n", "Y", [["+Y]]) --- -- next greatest remap ever : asbjornHaland --- vim.keymap.set({ "n", "v" }, "y", [["+y]]) --- vim.keymap.set("n", "Y", [["+Y]]) +-- search-and-replace shortcuts +vim.keymap.set("n", "rw", [[:%s/\<\>//gI]]) +vim.keymap.set("n", "ra", [[:%s//g]]) --- vim.keymap.set({ "n", "v" }, "d", "\"_d") +-- toggle expandtab and show message +vim.keymap.set("n", "tab", function() + if vim.opt.expandtab:get() then + vim.opt.expandtab = false + print("using actual tabs") + else + vim.opt.expandtab = true + print("using spaces in place of tabs") + end +end) --- -- This is going to get me cancelled --- vim.keymap.set("i", "", "") - --- vim.keymap.set("n", "Q", "") --- vim.keymap.set("n", "", "silent !tmux neww tmux-sessionizer") --- vim.keymap.set("n", "", "silent !tmux-sessionizer -s 0 --vsplit") --- vim.keymap.set("n", "", "silent !tmux neww tmux-sessionizer -s 0") --- vim.keymap.set("n", "f", function() --- require("conform").format({ bufnr = 0 }) --- end) +-- quicker switching between panes/splits +vim.keymap.set("n", "", [[h]]) +vim.keymap.set("n", "", [[j]]) +vim.keymap.set("n", "", [[k]]) +vim.keymap.set("n", "", [[l]]) +-- TODO: learn about quickfix (:help quickfix), then maybe use these -- vim.keymap.set("n", "", "cnextzz") -- vim.keymap.set("n", "", "cprevzz") -- vim.keymap.set("n", "k", "lnextzz") -- vim.keymap.set("n", "j", "lprevzz") --- vim.keymap.set("n", "s", [[:%s/\<\>//gI]]) --- vim.keymap.set("n", "x", "!chmod +x %", { silent = true }) - --- vim.keymap.set( --- "n", --- "ee", --- "oif err != nil {}Oreturn err" --- ) - --- vim.keymap.set( --- "n", --- "ea", --- "oassert.NoError(err, \"\")F\";a" --- ) - --- vim.keymap.set( --- "n", --- "ef", --- "oif err != nil {}Olog.Fatalf(\"error: %s\\n\", err.Error())jj" --- ) - --- vim.keymap.set( --- "n", --- "el", --- "oif err != nil {}O.logger.Error(\"error\", \"error\", err)F.;i" --- ) - --- vim.keymap.set("n", "ca", function() --- require("cellular-automaton").start_animation("make_it_rain") --- end) - --- vim.keymap.set("n", "", function() --- vim.cmd("so") --- end) - diff --git a/src_files/.config/nvim/lua/david_standard/settings.lua b/src_files/.config/nvim/lua/david_standard/settings.lua index edb2e9d..dde6b0f 100644 --- a/src_files/.config/nvim/lua/david_standard/settings.lua +++ b/src_files/.config/nvim/lua/david_standard/settings.lua @@ -1,33 +1,43 @@ vim.g.mapleader = " " +-- -- TODO: do i want these? +-- vim.opt.isfname:append("@-@") -- vim.opt.guicursor = "" +vim.opt.hlsearch = true +vim.opt.incsearch = true + +vim.opt.termguicolors = true +vim.opt.scrolloff = 2 +vim.opt.colorcolumn = "90" +vim.opt.signcolumn = "number" -- "auto", "yes", "no", "number" +vim.opt.laststatus = 2 +vim.opt.splitright = true +vim.opt.splitbelow = true + +vim.opt.errorbells = false +vim.opt.visualbell = false + +vim.opt.updatetime = 1000 + vim.opt.nu = true vim.opt.relativenumber = true +vim.opt.smartindent = true +vim.opt.wrap = false --- vim.opt.tabstop = 4 --- vim.opt.softtabstop = 4 --- vim.opt.shiftwidth = 4 --- vim.opt.expandtab = true +vim.opt.tabstop = 4 +vim.opt.softtabstop = 4 +vim.opt.shiftwidth = 4 +vim.opt.expandtab = true --- vim.opt.smartindent = true +vim.opt.backup = false +vim.opt.swapfile = false +vim.opt.undodir = os.getenv("XDG_DATA_HOME") .. "/nvim/undodir" +vim.opt.undofile = true --- vim.opt.wrap = false +-- netrw settings +vim.g.netrw_browse_split = 0 +vim.g.netrw_preview = 1 +vim.g.netrw_banner = 0 +vim.g.netrw_winsize = 25 --- vim.opt.swapfile = false --- vim.opt.backup = false --- vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir" --- vim.opt.undofile = true - --- vim.opt.hlsearch = false --- vim.opt.incsearch = true - --- vim.opt.termguicolors = true - --- vim.opt.scrolloff = 8 --- vim.opt.signcolumn = "yes" --- vim.opt.isfname:append("@-@") - --- vim.opt.updatetime = 50 - --- vim.opt.colorcolumn = "90"