Updates neovim config
This commit is contained in:
parent
074bccdb21
commit
117ccbf4b5
5 changed files with 323 additions and 203 deletions
|
|
@ -1,8 +1,9 @@
|
|||
local opts = { noremap = true, silent = true, expr = true }
|
||||
|
||||
-- Non-leader general keybindings
|
||||
vim.keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'", opts)
|
||||
vim.keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'", opts)
|
||||
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", "<C-d>", "<C-d>zz", { desc = "Move down" })
|
||||
vim.keymap.set("n", "<C-u>", "<C-u>zz", { desc = "Move up" })
|
||||
vim.keymap.set("n", "n", "nzzzv", { desc = "Move to next occurence" })
|
||||
vim.keymap.set("n", "N", "Nzzzv", { desc = "Move to next occurence" })
|
||||
|
|
|
|||
|
|
@ -15,11 +15,8 @@ if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
|||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
local opts = { noremap = true, silent = true, expr = true }
|
||||
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
vim.keymap.set("", "<Space>", "<Nop>", opts)
|
||||
|
||||
local options = {
|
||||
backup = false, -- creates a backup file
|
||||
|
|
|
|||
|
|
@ -13,9 +13,17 @@ vim.diagnostic.config({
|
|||
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
callback = function(args)
|
||||
local opts = { buffer = args.buf }
|
||||
|
||||
vim.keymap.set("n", "<leader>e", "<cmd>lua vim.diagnostic.open_float()<cr>", opts)
|
||||
vim.keymap.set("n", "<leader>ca", "<cmd>lua vim.lsp.buf.code_action()<cr>", opts)
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"<leader>e",
|
||||
"<cmd>lua vim.diagnostic.open_float()<cr>",
|
||||
{ buffer = args.buf, desc = "Show diagnostics on current line" }
|
||||
)
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"<leader>ca",
|
||||
"<cmd>lua vim.lsp.buf.code_action()<cr>",
|
||||
{ buffer = args.buf, desc = "Code actions for current line" }
|
||||
)
|
||||
end,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -14,64 +14,167 @@ return {
|
|||
lazy = false,
|
||||
opts = {
|
||||
bigfile = { enabled = true },
|
||||
dashboard = {
|
||||
enabled = false,
|
||||
sections = {
|
||||
{ section = "keys", gap = 1, padding = 1 },
|
||||
{ section = "startup" },
|
||||
{
|
||||
section = "terminal",
|
||||
cmd = "pokemon-colorscripts -r --no-title; sleep .1",
|
||||
random = 10,
|
||||
pane = 2,
|
||||
indent = 8,
|
||||
height = 30,
|
||||
},
|
||||
},
|
||||
},
|
||||
git = { enabled = true },
|
||||
gitbrowse = { enabled = true },
|
||||
gitbrowse = {
|
||||
enabled = true,
|
||||
what = "commit",
|
||||
},
|
||||
indent = { enabled = true },
|
||||
input = { enabled = true },
|
||||
lazygit = {
|
||||
enabled = true,
|
||||
configure = true,
|
||||
},
|
||||
notifier = { enabled = true },
|
||||
picker = {
|
||||
enabled = true,
|
||||
prompt = "λ ",
|
||||
preset = "ivy",
|
||||
layout = { position = "bottom" },
|
||||
},
|
||||
statuscolumn = { enabled = true },
|
||||
zen = { enabled = true },
|
||||
},
|
||||
-- stylua: ignore
|
||||
keys = {
|
||||
-- Git
|
||||
{ "<leader>gg", function() Snacks.lazygit() end, desc = "Lazygit" },
|
||||
{ "<leader>gb", function() Snacks.git.blame_line() end, desc = "Show git blame for current line" },
|
||||
{ "<leader>gl", function() Snacks.gitbrowse() end, desc = "Open link to line at git remote" },
|
||||
{
|
||||
"<leader>gg",
|
||||
function()
|
||||
Snacks.lazygit()
|
||||
end,
|
||||
desc = "Lazygit",
|
||||
},
|
||||
{
|
||||
"<leader>gb",
|
||||
function()
|
||||
Snacks.git.blame_line()
|
||||
end,
|
||||
desc = "Show git blame for current line",
|
||||
},
|
||||
{
|
||||
"<leader>gl",
|
||||
function()
|
||||
Snacks.gitbrowse()
|
||||
end,
|
||||
desc = "Open link to line at git remote",
|
||||
},
|
||||
-- Zen Mode
|
||||
{ "<leader>z", function() Snacks.zen() end, desc = "Toggle Zen Mode" },
|
||||
{
|
||||
"<leader>z",
|
||||
function()
|
||||
Snacks.zen()
|
||||
end,
|
||||
desc = "Toggle Zen Mode",
|
||||
},
|
||||
-- Picker
|
||||
{ "<leader>", function() end, desc = "" },
|
||||
{ "<leader>.", function() Snacks.picker.files() end, desc = "" },
|
||||
{ "<leader><leader>", function() Snacks.picker.git_files() end, desc = "Git files" },
|
||||
{
|
||||
"<leader>.",
|
||||
function()
|
||||
Snacks.picker.files()
|
||||
end,
|
||||
desc = "",
|
||||
},
|
||||
{
|
||||
"<leader><leader>",
|
||||
function()
|
||||
Snacks.picker.git_files()
|
||||
end,
|
||||
desc = "Git files",
|
||||
},
|
||||
-- Find
|
||||
{ "<leader>fr", function() Snacks.picker.recent() end, desc = "Recent" },
|
||||
{ "<leader>fp", function() Snacks.picker.projects() end, desc = "Projects" },
|
||||
{
|
||||
"<leader>fr",
|
||||
function()
|
||||
Snacks.picker.recent()
|
||||
end,
|
||||
desc = "Recent",
|
||||
},
|
||||
{
|
||||
"<leader>fp",
|
||||
function()
|
||||
Snacks.picker.projects()
|
||||
end,
|
||||
desc = "Projects",
|
||||
},
|
||||
-- Search
|
||||
{ "<leader>ss", function() Snacks.picker.grep() end, desc = "Grep" },
|
||||
{ "<leader>sw", function() Snacks.picker.grep_word() end, desc = "Visual selection or word", mode = { "n", "x" } },
|
||||
{ "<leader>su", function() Snacks.picker.undo() end, desc = "Undo History" },
|
||||
{
|
||||
"<leader>ss",
|
||||
function()
|
||||
Snacks.picker.grep()
|
||||
end,
|
||||
desc = "Grep",
|
||||
},
|
||||
{
|
||||
"<leader>sw",
|
||||
function()
|
||||
Snacks.picker.grep_word()
|
||||
end,
|
||||
desc = "Visual selection or word",
|
||||
mode = { "n", "x" },
|
||||
},
|
||||
{
|
||||
"<leader>su",
|
||||
function()
|
||||
Snacks.picker.undo()
|
||||
end,
|
||||
desc = "Undo History",
|
||||
},
|
||||
-- Diagnostics
|
||||
{ "<leader>td", function() Snacks.picker.diagnostics_buffer() end, desc = "Buffer Diagnostics" },
|
||||
{ "<leader>ta", function() Snacks.picker.diagnostics() end, desc = "Diagnostics" },
|
||||
{
|
||||
"<leader>td",
|
||||
function()
|
||||
Snacks.picker.diagnostics_buffer()
|
||||
end,
|
||||
desc = "Buffer Diagnostics",
|
||||
},
|
||||
{
|
||||
"<leader>ta",
|
||||
function()
|
||||
Snacks.picker.diagnostics()
|
||||
end,
|
||||
desc = "Diagnostics",
|
||||
},
|
||||
-- LSP
|
||||
{ "gd", function() Snacks.picker.lsp_definitions({ filter = { filter = filter_lsp_definitions } }) end, desc = "Goto Definition" },
|
||||
{ "gD", function() Snacks.picker.lsp_declarations() end, desc = "Goto Declaration" },
|
||||
{ "grr", function() Snacks.picker.lsp_references() end, nowait = true, desc = "References" },
|
||||
{ "gI", function() Snacks.picker.lsp_implementations() end, desc = "Goto Implementation" },
|
||||
{ "gy", function() Snacks.picker.lsp_type_definitions() end, desc = "Goto T[y]pe Definition" },
|
||||
{
|
||||
"gd",
|
||||
function()
|
||||
Snacks.picker.lsp_definitions({ filter = { filter = filter_lsp_definitions } })
|
||||
end,
|
||||
desc = "Goto Definition",
|
||||
},
|
||||
{
|
||||
"gD",
|
||||
function()
|
||||
Snacks.picker.lsp_declarations()
|
||||
end,
|
||||
desc = "Goto Declaration",
|
||||
},
|
||||
{
|
||||
"grr",
|
||||
function()
|
||||
Snacks.picker.lsp_references()
|
||||
end,
|
||||
nowait = true,
|
||||
desc = "References",
|
||||
},
|
||||
{
|
||||
"gI",
|
||||
function()
|
||||
Snacks.picker.lsp_implementations()
|
||||
end,
|
||||
desc = "Goto Implementation",
|
||||
},
|
||||
{
|
||||
"gy",
|
||||
function()
|
||||
Snacks.picker.lsp_type_definitions()
|
||||
end,
|
||||
desc = "Goto T[y]pe Definition",
|
||||
},
|
||||
{
|
||||
"<leader>on",
|
||||
function()
|
||||
Snacks.notifier.show_history()
|
||||
end,
|
||||
desc = "Open notification history",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,158 +3,169 @@ local utils = require("dnsc.utils")
|
|||
return {
|
||||
"folke/which-key.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
icons = { mappings = false },
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>o", group = "open", mode = "n" },
|
||||
{ "<leader>ot", ":e ~/notes/todo.txt<cr>", desc = "Open todos", mode = "n" },
|
||||
{ "<leader>od", ":80 vsplit | :VimwikiMakeDiaryNote<cr>", desc = "Open diary note in split", mode = "n" },
|
||||
{ "<leader>b", group = "buffer", mode = "n" },
|
||||
{ "<leader>b,", "<Cmd>BufferMovePrevious<CR>", desc = "Move buffer back", mode = "n" },
|
||||
{
|
||||
"<leader>b.",
|
||||
"<Cmd>BufferMoveNext<CR>",
|
||||
desc = "Move buffer forward",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>bD",
|
||||
"<cmd>BufferCloseAllButCurrent<cr>",
|
||||
desc = "Delete all buffers but current",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>bd",
|
||||
"<Cmd>BufferClose<CR>",
|
||||
desc = "Delete current buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>bh",
|
||||
"<Cmd>BufferPrevious<CR>",
|
||||
desc = "Go to previous buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>bl",
|
||||
"<Cmd>BufferNext<CR>",
|
||||
desc = "Go to next buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{ "<leader>bp", "<cmd>BufferPick<cr>", desc = "Pick a buffer", mode = "n" },
|
||||
{
|
||||
"<leader>bx",
|
||||
"<cmd>BufferCloseAllButPinned<cr>",
|
||||
desc = "Delete all buffers",
|
||||
mode = "n",
|
||||
},
|
||||
{ "<leader>c", group = "code/compile", mode = "n" },
|
||||
{
|
||||
"<leader>cr",
|
||||
function()
|
||||
utils.compile_project()
|
||||
end,
|
||||
desc = "Run current project",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>q",
|
||||
"<cmd>wq<cr>",
|
||||
desc = "Close window and buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{ "<leader>f", group = "file", mode = "n" },
|
||||
{
|
||||
"<leader>fn",
|
||||
"<cmd>enew<cr>",
|
||||
desc = "Create a new file",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>fs",
|
||||
"<cmd>w<cr>",
|
||||
desc = "Save currently opened file",
|
||||
mode = "n",
|
||||
},
|
||||
{ "<leader>q", "<cmd>qa!<cr>", desc = "Leave neovim", mode = "n" },
|
||||
{ "<leader>s", group = "search", mode = "n" },
|
||||
{ "<leader>t", group = "diagnostics (lsp)", mode = "n" },
|
||||
{ "<leader>ta", "<cmd>TodoQuickFix<cr>", desc = "Show all todo comments", mode = "n" },
|
||||
{ "<leader>w", group = "window", mode = "n" },
|
||||
{
|
||||
"<leader>w+",
|
||||
":vertical resize +4<CR>",
|
||||
desc = "Increase window size",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>w-",
|
||||
":vertical resize -4<CR>",
|
||||
desc = "Decrease window size",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>wx",
|
||||
"<C-W>q",
|
||||
desc = "Close active window",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>wx",
|
||||
":bd<CR>",
|
||||
desc = "Kill active window and buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>wh",
|
||||
"<C-W>h",
|
||||
desc = "Move to window on left",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>wj",
|
||||
"<C-W>j",
|
||||
desc = "Move to window on bottom",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>wk",
|
||||
"<C-W>k",
|
||||
desc = "Move to window on top",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>wl",
|
||||
"<C-W>l",
|
||||
desc = "Move to window on right",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>ws",
|
||||
"<cmd>sp<cr>",
|
||||
desc = "Split windows horizontally",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>wv",
|
||||
"<cmd>vsp<cr>",
|
||||
desc = "Split windows vertically",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>wd",
|
||||
"<cmd>bd<cr>",
|
||||
desc = "Delete buffer and window",
|
||||
mode = "n",
|
||||
},
|
||||
{ "<leader>x", group = "config", mode = "n" },
|
||||
{
|
||||
"<leader>xn",
|
||||
"<cmd>set number relativenumber<cr>",
|
||||
desc = "Show relative numbers",
|
||||
mode = "n",
|
||||
},
|
||||
{ "<leader>xr", "<cmd>source $MYVIMRC<cr>", desc = "Reload config", mode = "n" },
|
||||
},
|
||||
config = function()
|
||||
local wk = require("which-key")
|
||||
|
||||
---@class wk.Opts
|
||||
local opts = {
|
||||
icons = { mappings = false },
|
||||
win = { border = "rounded" },
|
||||
}
|
||||
|
||||
wk.setup(opts)
|
||||
wk.add({
|
||||
{ "<leader>o", group = "+open", mode = "n" },
|
||||
{ "<leader>ot", ":e ~/notes/todo.txt<cr>", desc = "Open tasks", mode = "n" },
|
||||
{ "<leader>od", ":80 vsplit | :VimwikiMakeDiaryNote<cr>", desc = "Open daily note", mode = "n" },
|
||||
|
||||
{ "<leader>b", group = "+buffer", mode = "n" },
|
||||
{ "<leader>b,", "<Cmd>BufferMovePrevious<CR>", desc = "Move buffer backwards", mode = "n" },
|
||||
{
|
||||
"<leader>b.",
|
||||
"<Cmd>BufferMoveNext<CR>",
|
||||
desc = "Move buffer forward",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>bD",
|
||||
"<cmd>BufferCloseAllButCurrent<cr>",
|
||||
desc = "Delete all buffers but current",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>bd",
|
||||
"<Cmd>BufferClose<CR>",
|
||||
desc = "Delete current buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>bh",
|
||||
"<Cmd>BufferPrevious<CR>",
|
||||
desc = "Go to previous buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>bl",
|
||||
"<Cmd>BufferNext<CR>",
|
||||
desc = "Go to next buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{ "<leader>bp", "<cmd>BufferPick<cr>", desc = "Pick a buffer", mode = "n" },
|
||||
{
|
||||
"<leader>bx",
|
||||
"<cmd>BufferCloseAllButPinned<cr>",
|
||||
desc = "Delete all buffers",
|
||||
mode = "n",
|
||||
},
|
||||
|
||||
{ "<leader>c", group = "+code", mode = "n" },
|
||||
{
|
||||
"<leader>cr",
|
||||
function()
|
||||
utils.compile_project()
|
||||
end,
|
||||
desc = "Compile project",
|
||||
mode = "n",
|
||||
},
|
||||
|
||||
{ "<leader>f", group = "+file", mode = "n" },
|
||||
{
|
||||
"<leader>fn",
|
||||
"<cmd>enew<cr>",
|
||||
desc = "Create a new file",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>fs",
|
||||
"<cmd>w<cr>",
|
||||
desc = "Save currently opened file",
|
||||
mode = "n",
|
||||
},
|
||||
|
||||
{ "<leader>qq", "<cmd>qa!<cr>", desc = "Leave neovim", mode = "n" },
|
||||
|
||||
{ "<leader>s", group = "+search", mode = "n" },
|
||||
{ "<leader>g", group = "+git", mode = "n" },
|
||||
|
||||
{ "<leader>t", group = "+diagnostics", mode = "n" },
|
||||
{ "<leader>ta", "<cmd>TodoQuickFix<cr>", desc = "Show all todo comments", mode = "n" },
|
||||
|
||||
{ "<leader>w", group = "+window", mode = "n" },
|
||||
{
|
||||
"<leader>w+",
|
||||
":vertical resize +4<CR>",
|
||||
desc = "Increase window size",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>w-",
|
||||
":vertical resize -4<CR>",
|
||||
desc = "Decrease window size",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>wx",
|
||||
"<C-W>q",
|
||||
desc = "Close active window",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>wx",
|
||||
":bd<CR>",
|
||||
desc = "Kill active window and buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>wh",
|
||||
"<C-W>h",
|
||||
desc = "Move to window on left",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>wj",
|
||||
"<C-W>j",
|
||||
desc = "Move to window on bottom",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>wk",
|
||||
"<C-W>k",
|
||||
desc = "Move to window on top",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>wl",
|
||||
"<C-W>l",
|
||||
desc = "Move to window on right",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>ws",
|
||||
"<cmd>sp<cr>",
|
||||
desc = "Split windows horizontally",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>wv",
|
||||
"<cmd>vsp<cr>",
|
||||
desc = "Split windows vertically",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>wd",
|
||||
"<cmd>bd<cr>",
|
||||
desc = "Delete buffer and window",
|
||||
mode = "n",
|
||||
},
|
||||
|
||||
{ "<leader>x", group = "+config", mode = "n" },
|
||||
{
|
||||
"<leader>xn",
|
||||
"<cmd>set number relativenumber<cr>",
|
||||
desc = "Show relative numbers",
|
||||
mode = "n",
|
||||
},
|
||||
{ "<leader>xr", "<cmd>source $MYVIMRC<cr>", desc = "Reload config", mode = "n" },
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue