From d18286f7fcd2b1ce3756f3e2728de05cc0eff3d8 Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Tue, 21 Oct 2025 10:07:35 +0200 Subject: [PATCH 1/3] feat(keybindings): add more keybindings. --- lua/config/keybindings.lua | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/lua/config/keybindings.lua b/lua/config/keybindings.lua index 2aa693c..7e4c741 100644 --- a/lua/config/keybindings.lua +++ b/lua/config/keybindings.lua @@ -3,7 +3,24 @@ vim.g.mapleader = " " vim.g.maplocalleader = ";" -- source current file -vim.keymap.set("n", " ", ":update :source") +vim.keymap.set("n", " ", ":update :source", { desc = "Source current lua file" }) -- format -vim.keymap.set("n", "lf", vim.lsp.buf.format) +vim.keymap.set("n", "lf", vim.lsp.buf.format, { desc = "Format buffer with available lsp" }) + +-- setup mini.pick +vim.keymap.set("n", "ff", ":Pick files", { desc = "Search file in directory" }) +vim.keymap.set("n", "fh", ":Pick help", { desc = "Searcch neovim help" }) + +-- move lines up or down +vim.keymap.set("n", "", ":m .+1==", { desc = "Move line down" }) +vim.keymap.set("n", "", ":m .-2==", { desc = "Move line up" }) +vim.keymap.set("v", "", ":m '>+1gv=gv", { desc = "Move selection down" }) +vim.keymap.set("v", "", ":m '<-2gv=gv", { desc = "Move selection up" }) + +-- better indenting in visual mode +vim.keymap.set("v", "<", "", ">gv", { desc = "Indent right and reselect" }) + +-- file exploring +vim.keymap.set("n", "e", ":Oil", { desc = "Open oil file explorer" }) From 3a99d36890ae5ddbdc9c194b40e91d665cae1874 Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Tue, 21 Oct 2025 10:07:48 +0200 Subject: [PATCH 2/3] feat(settings): add more settings. --- lua/config/settings.lua | 71 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 3 deletions(-) diff --git a/lua/config/settings.lua b/lua/config/settings.lua index 3fdff37..d901684 100644 --- a/lua/config/settings.lua +++ b/lua/config/settings.lua @@ -2,6 +2,12 @@ vim.opt.number = true vim.opt.relativenumber = true +-- highlight cursorline +vim.opt.cursorline = true + +-- highlight column 80 +vim.opt.colorcolumn = "80" + -- make splits open on bottom and right vim.opt.splitbelow = true vim.opt.splitright = true @@ -9,13 +15,17 @@ vim.opt.splitright = true -- disable line wrapping vim.opt.wrap = false --- setup tabs nicelly +-- setup tabs and indenting vim.opt.expandtab = true +vim.opt.smartindent = true +vim.opt.autoindent = true vim.opt.tabstop = 2 vim.opt.shiftwidth = 2 +vim.opt.softtabstop = 2 -- setup a nice scrolloff value vim.opt.scrolloff = 20 +vim.opt.sidescrolloff = 10 -- make virtual edit work for blocks vim.opt.virtualedit = "block" @@ -23,8 +33,63 @@ vim.opt.virtualedit = "block" -- make :s and others open a split vim.opt.inccommand = "split" --- ignore case +-- search settings vim.opt.ignorecase = true +vim.opt.smartcase = true --- disable neovim swap files +-- matching bracket settings +vim.opt.showmatch = true +vim.opt.matchtime = 2 + +-- commandline settings +vim.opt.cmdheight = 1 +vim.opt.showmode = false + +-- popup settings +vim.opt.pumheight = 10 +vim.opt.pumblend = 10 +vim.opt.winblend = 0 + +-- concealing settings +vim.opt.conceallevel = 0 +vim.opt.concealcursor = "" + +-- redraw lazilly +vim.opt.lazyredraw = true + +-- lower syntax highlighing for performance +vim.opt.synmaxcol = 300 + +-- better completion options +vim.opt.completeopt = "menuone,noinsert,noselect" + +-- enable signcolumn +vim.opt.signcolumn = "yes" + +-- enable rounded borders +vim.opt.winborder = "rounded" + +-- better file handling +vim.opt.backup = false +vim.opt.writebackup = false vim.opt.swapfile = false +vim.opt.undofile = true +vim.opt.undodir = vim.fn.expand("~/.local/state/nvim/undo") +vim.opt.autoread = true +vim.opt.autowrite = true + +-- durations for completion and other stuff +vim.opt.updatetime = 300 +vim.opt.timeoutlen = 500 +vim.opt.ttimeoutlen = 0 + +-- change some behaviour settings +vim.opt.hidden = true +vim.opt.errorbells = false +vim.opt.backspace = "indent,eol,start" +vim.opt.autochdir = false +vim.opt.iskeyword:append("-") -- treat dash as part of the word +vim.opt.path:append("**") -- include subdirectories in search +vim.opt.selection = "exclusive" +vim.opt.modifiable = true +vim.opt.encoding = "UTF8" From d0ab90518d30d8742ab7af43a063d2b3dd166baa Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Tue, 21 Oct 2025 10:08:19 +0200 Subject: [PATCH 3/3] feat: setup mini.pick, oil.nvim and lazydev.nvim --- lua/config/pack.lua | 9 +++++++++ lua/plugins/init.lua | 2 ++ lua/plugins/lsp.lua | 3 +++ lua/plugins/mini.lua | 1 + lua/plugins/oil.lua | 1 + nvim-pack-lock.json | 12 ++++++++++++ 6 files changed, 28 insertions(+) create mode 100644 lua/plugins/mini.lua create mode 100644 lua/plugins/oil.lua diff --git a/lua/config/pack.lua b/lua/config/pack.lua index a24bd02..e4e5443 100644 --- a/lua/config/pack.lua +++ b/lua/config/pack.lua @@ -1,5 +1,14 @@ vim.pack.add({ + -- Colorscheme {src = "https://github.com/ellisonleao/gruvbox.nvim"}, + -- Treesitter parsers {src = "https://github.com/nvim-treesitter/nvim-treesitter"}, + -- Preconfigured lsp's {src = "https://github.com/neovim/nvim-lspconfig"}, + -- Nice file manager + {src = "https://github.com/stevearc/oil.nvim"}, + -- Amazing neovim bundle of plugins that are super nice + {src = "https://github.com/nvim-mini/mini.nvim"}, + -- Fix the annoying neovim+lua errors + {src = "https://github.com/folke/lazydev.nvim"}, }) diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index abb6c71..20726e2 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -1,3 +1,5 @@ require("plugins.colorscheme") require("plugins.treesitter") require("plugins.lsp") +require("plugins.oil") +require("plugins.mini") diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index c004a86..cfa3ff9 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -2,3 +2,6 @@ vim.lsp.enable({ "nixd", "lua_ls", }) + +-- fix stupid lua error with neovim +require("lazydev").setup() diff --git a/lua/plugins/mini.lua b/lua/plugins/mini.lua new file mode 100644 index 0000000..71dcae0 --- /dev/null +++ b/lua/plugins/mini.lua @@ -0,0 +1 @@ +require("mini.pick").setup() diff --git a/lua/plugins/oil.lua b/lua/plugins/oil.lua new file mode 100644 index 0000000..ee12680 --- /dev/null +++ b/lua/plugins/oil.lua @@ -0,0 +1 @@ +require("oil").setup() diff --git a/nvim-pack-lock.json b/nvim-pack-lock.json index b6d8b78..5292179 100644 --- a/nvim-pack-lock.json +++ b/nvim-pack-lock.json @@ -4,6 +4,14 @@ "rev": "5e0a460", "src": "https://github.com/ellisonleao/gruvbox.nvim" }, + "lazydev.nvim": { + "rev": "e28ce52", + "src": "https://github.com/folke/lazydev.nvim" + }, + "mini.nvim": { + "rev": "14145d3", + "src": "https://github.com/nvim-mini/mini.nvim" + }, "nvim-lspconfig": { "rev": "ac98db2", "src": "https://github.com/neovim/nvim-lspconfig" @@ -11,6 +19,10 @@ "nvim-treesitter": { "rev": "42fc28ba", "src": "https://github.com/nvim-treesitter/nvim-treesitter" + }, + "oil.nvim": { + "rev": "7e1cd77", + "src": "https://github.com/stevearc/oil.nvim" } } } \ No newline at end of file