Add more neovim configuration

This commit is contained in:
2025-08-18 16:39:41 -05:00
parent 3caa97137b
commit 9440c6ef57
5 changed files with 105 additions and 92 deletions

View File

@@ -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]],
})

View File

@@ -31,6 +31,14 @@ vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
-- fugitive (git integration)
vim.keymap.set("n", "<leader>gG", vim.cmd.Git)
vim.keymap.set("n", "<leader>gg", ":Git --paginate ") -- shortcut, arbitrary git commands
vim.keymap.set("n", "<leader>gg", ":Git ") -- shortcut, arbitrary git commands
vim.keymap.set("n", "<leader>ga", function() vim.cmd.Git({ "add %"}) end)
vim.keymap.set("n", "<leader>gs", function() vim.cmd.Git({ "--paginate status" }) end)
vim.keymap.set("n", "<leader>gc", function() vim.cmd.Git({ "commit -a" }) end)
-- conform (formatter)
-- TODO: uncomment this once i set up the plugin
-- vim.keymap.set("n", "<leader>fmt", function()
-- require("conform").format({ bufnr = 0 })
-- end)

View File

@@ -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
}

View File

@@ -1,82 +1,51 @@
vim.keymap.set("n", "<leader>d", vim.cmd.Ex)
-- explore the directory of the current file (using netrw)
vim.keymap.set("n", "<leader>n", vim.cmd.Ex)
-- vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
-- vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
-- move selected lines up or down
vim.keymap.set("v", "J", ":m '>+1<CR>gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv")
-- vim.api.nvim_set_keymap("n", "<leader>tf", "<Plug>PlenaryTestFile", { noremap = false, silent = false })
-- vertically center cursor with half-page jumps iterating search results
vim.keymap.set("n", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>zz")
vim.keymap.set("n", "n", "nzzzv")
vim.keymap.set("n", "N", "Nzzzv")
-- vim.keymap.set("n", "J", "mzJ`z")
-- vim.keymap.set("n", "<C-d>", "<C-d>zz")
-- vim.keymap.set("n", "<C-u>", "<C-u>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", "<leader>zig", "<cmd>LspRestart<cr>")
-- maintain cursor position after paragraph formatting
vim.keymap.set("n", "=ap", "ma=ap'a")
-- vim.keymap.set("n", "<leader>vwm", function()
-- require("vim-with-me").StartVimWithMe()
-- end)
-- vim.keymap.set("n", "<leader>svwm", function()
-- require("vim-with-me").StopVimWithMe()
-- end)
-- shortcuts for deleting into the void register
vim.keymap.set({ "n", "v" }, "<leader>d", "\"_d")
vim.keymap.set("x", "<leader>p", [["_dP]]) -- replace selected text, keep main register
-- -- greatest remap ever
-- vim.keymap.set("x", "<leader>p", [["_dP]])
-- shortcuts for using + register (system clipboard)
vim.keymap.set({ "n", "v" }, "<leader>y", [["+y]])
vim.keymap.set("n", "<leader>Y", [["+Y]])
-- -- next greatest remap ever : asbjornHaland
-- vim.keymap.set({ "n", "v" }, "<leader>y", [["+y]])
-- vim.keymap.set("n", "<leader>Y", [["+Y]])
-- search-and-replace shortcuts
vim.keymap.set("n", "<leader>rw", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
vim.keymap.set("n", "<leader>ra", [[:%s//g<Left><Left>]])
-- vim.keymap.set({ "n", "v" }, "<leader>d", "\"_d")
-- toggle expandtab and show message
vim.keymap.set("n", "<leader>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", "<C-c>", "<Esc>")
-- vim.keymap.set("n", "Q", "<nop>")
-- vim.keymap.set("n", "<C-f>", "<cmd>silent !tmux neww tmux-sessionizer<CR>")
-- vim.keymap.set("n", "<M-h>", "<cmd>silent !tmux-sessionizer -s 0 --vsplit<CR>")
-- vim.keymap.set("n", "<M-H>", "<cmd>silent !tmux neww tmux-sessionizer -s 0<CR>")
-- vim.keymap.set("n", "<leader>f", function()
-- require("conform").format({ bufnr = 0 })
-- end)
-- quicker switching between panes/splits
vim.keymap.set("n", "<C-h>", [[<C-w>h]])
vim.keymap.set("n", "<C-j>", [[<C-w>j]])
vim.keymap.set("n", "<C-k>", [[<C-w>k]])
vim.keymap.set("n", "<C-l>", [[<C-w>l]])
-- TODO: learn about quickfix (:help quickfix), then maybe use these
-- vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz")
-- vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz")
-- vim.keymap.set("n", "<leader>k", "<cmd>lnext<CR>zz")
-- vim.keymap.set("n", "<leader>j", "<cmd>lprev<CR>zz")
-- vim.keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
-- vim.keymap.set("n", "<leader>x", "<cmd>!chmod +x %<CR>", { silent = true })
-- vim.keymap.set(
-- "n",
-- "<leader>ee",
-- "oif err != nil {<CR>}<Esc>Oreturn err<Esc>"
-- )
-- vim.keymap.set(
-- "n",
-- "<leader>ea",
-- "oassert.NoError(err, \"\")<Esc>F\";a"
-- )
-- vim.keymap.set(
-- "n",
-- "<leader>ef",
-- "oif err != nil {<CR>}<Esc>Olog.Fatalf(\"error: %s\\n\", err.Error())<Esc>jj"
-- )
-- vim.keymap.set(
-- "n",
-- "<leader>el",
-- "oif err != nil {<CR>}<Esc>O.logger.Error(\"error\", \"error\", err)<Esc>F.;i"
-- )
-- vim.keymap.set("n", "<leader>ca", function()
-- require("cellular-automaton").start_animation("make_it_rain")
-- end)
-- vim.keymap.set("n", "<leader><leader>", function()
-- vim.cmd("so")
-- end)

View File

@@ -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"