diff options
| author | bee <beebeeb5k@gmail.com> | 2026-05-05 22:37:10 +0530 |
|---|---|---|
| committer | bee <beebeeb5k@gmail.com> | 2026-05-05 22:37:10 +0530 |
| commit | 9365a8e96827cbf7bc5adad6d29bcd05b4d761b2 (patch) | |
| tree | 0998a5dcfc4517e4112a2c589e04ac0dbc1e011b /plugin | |
| parent | 0c50f17133b90c60735f1f51943f51f60372bdd3 (diff) | |
Migrate from nixcats to nix-wrapper-modules
Diffstat (limited to 'plugin')
| -rw-r--r-- | plugin/keymaps.lua | 40 | ||||
| -rw-r--r-- | plugin/opts.lua | 118 |
2 files changed, 158 insertions, 0 deletions
diff --git a/plugin/keymaps.lua b/plugin/keymaps.lua new file mode 100644 index 0000000..c22f149 --- /dev/null +++ b/plugin/keymaps.lua @@ -0,0 +1,40 @@ +vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv", { desc = "Moves Line Down" }) +vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv", { desc = "Moves Line Up" }) +vim.keymap.set("n", "<C-d>", "<C-d>zz", { desc = "Scroll Down" }) +vim.keymap.set("n", "<C-u>", "<C-u>zz", { desc = "Scroll Up" }) +vim.keymap.set("n", "n", "nzzzv", { desc = "Next Search Result" }) +vim.keymap.set("n", "N", "Nzzzv", { desc = "Previous Search Result" }) + +vim.keymap.set("n", "<leader><leader>[", "<cmd>bprev<CR>", { desc = "Previous buffer" }) +vim.keymap.set("n", "<leader><leader>]", "<cmd>bnext<CR>", { desc = "Next buffer" }) +vim.keymap.set("n", "<leader><leader>l", "<cmd>b#<CR>", { desc = "Last buffer" }) +vim.keymap.set("n", "<leader><leader>d", "<cmd>bdelete<CR>", { desc = "delete buffer" }) + +-- Remap for dealing with word wrap +vim.keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) +vim.keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) + +-- Diagnostic keymaps +vim.keymap.set("n", "<leader>e", vim.diagnostic.open_float, { desc = "Open floating diagnostic message" }) +vim.keymap.set("n", "<leader>q", vim.diagnostic.setloclist, { desc = "Open diagnostics list" }) + +vim.keymap.set({ "v", "x", "n" }, "<leader>y", '"+y', { noremap = true, silent = true, desc = "Yank to clipboard" }) +vim.keymap.set( + { "n", "v", "x" }, + "<leader>Y", + '"+yy', + { noremap = true, silent = true, desc = "Yank line to clipboard" } +) +vim.keymap.set({ "n", "v", "x" }, "<leader>p", '"+p', { noremap = true, silent = true, desc = "Paste from clipboard" }) +vim.keymap.set( + "i", + "<C-p>", + "<C-r><C-p>+", + { noremap = true, silent = true, desc = "Paste from clipboard from within insert mode" } +) +vim.keymap.set( + "x", + "<leader>P", + '"_dP', + { noremap = true, silent = true, desc = "Paste over selection without erasing unnamed register" } +) diff --git a/plugin/opts.lua b/plugin/opts.lua new file mode 100644 index 0000000..942443a --- /dev/null +++ b/plugin/opts.lua @@ -0,0 +1,118 @@ +-- vim.opt.list = true +-- vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' } +-- vim.opt.listchars:append("space:⋅") +-- Set highlight on search +-- vim.opt.hlsearch = false + +require("vim._core.ui2").enable() +vim.cmd.packadd("nvim.undotree") +-- vim.cmd.packadd("nvim.difftool") + +vim.o.showmode = false +vim.o.showcmd = false +vim.o.winborder = "single" + +vim.opt.hlsearch = true +vim.keymap.set("n", "<Esc>", "<cmd>nohlsearch<CR>") + +-- Preview substitutions live, as you type! +vim.opt.inccommand = "split" + +-- Minimal number of screen lines to keep above and below the cursor. +vim.opt.scrolloff = 3 + +-- Make line numbers default +vim.wo.number = true +vim.o.cursorline = true + +-- Disable mouse mode +vim.o.mouse = "" + +-- Indent +vim.o.smarttab = true +-- vim.o.smartindent = true +-- vim.o.indentexpr = true +vim.o.autoindent = true +vim.opt.cpoptions:append("I") +vim.o.tabstop = 4 +vim.o.softtabstop = 4 +vim.o.shiftwidth = 4 +vim.o.expandtab = true + +-- stops line wrapping from being confusing +vim.o.wrap = true +vim.o.linebreak = true +vim.o.breakindent = true + +-- Save undo history +vim.o.undofile = false +vim.o.title = true +vim.o.swapfile = false + +-- Case-insensitive searching UNLESS \C or capital in search +vim.o.ignorecase = true +vim.o.smartcase = true + +-- Keep signcolumn on by default +vim.wo.signcolumn = "yes" +vim.wo.relativenumber = true +vim.opt.lazyredraw = true + +-- Decrease update time +vim.o.updatetime = 250 +vim.o.timeoutlen = 300 + +-- Set completeopt to have a better completion experience +vim.o.completeopt = "menu,preview,noselect" + +-- NOTE: You should make sure your terminal supports this +vim.o.termguicolors = true + +-- remove empty buffer text +vim.opt.shortmess:append("I") + +vim.g.netrw_liststyle = 0 +vim.g.netrw_banner = 0 + +-- [[ Highlight on yank ]] +-- See `:help vim.highlight.on_yank()` +local highlight_group = vim.api.nvim_create_augroup("YankHighlight", { clear = true }) +vim.api.nvim_create_autocmd("TextYankPost", { + callback = function() + vim.hl.on_yank() + end, + group = highlight_group, + pattern = "*", +}) + +local augroup = vim.api.nvim_create_augroup("UserConfig", {}) + +-- [[ Disable auto comment on enter ]] +-- See :help formatoptions +vim.api.nvim_create_autocmd("FileType", { + desc = "remove formatoptions", + group = augroup, + callback = function() + vim.opt.formatoptions:remove({ "c", "r", "o" }) + end, +}) + +vim.api.nvim_create_autocmd("FileType", { + group = augroup, + pattern = "help", + callback = function() + vim.bo.bufhidden = "unload" + vim.cmd.wincmd("L") + end, +}) + +-- -- Create directories when saving files +-- vim.api.nvim_create_autocmd("BufWritePre", { +-- group = augroup, +-- callback = function() +-- local dir = vim.fn.expand('<afile>:p:h') +-- if vim.fn.isdirectory(dir) == 0 then +-- vim.fn.mkdir(dir, 'p') +-- end +-- end, +-- }) |
