diff options
Diffstat (limited to 'nvim/init.lua')
| -rw-r--r-- | nvim/init.lua | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/nvim/init.lua b/nvim/init.lua new file mode 100644 index 0000000..30e1e77 --- /dev/null +++ b/nvim/init.lua @@ -0,0 +1,77 @@ +vim.o.relativenumber = true +vim.o.expandtab = true +vim.o.shiftwidth = 4 +vim.o.softtabstop = 4 +vim.o.mouse = 'a' +vim.o.makeprg = './build.sh' +vim.o.clipboard = 'unnamedplus' +vim.o.breakindent = true +vim.o.ignorecase = true +vim.o.smartcase = true +vim.o.signcolumn = 'auto' +vim.o.cursorline = false +vim.o.scrolloff = 10 +vim.o.confirm = true +vim.o.autochdir = false +vim.o.cinoptions = 'l1,t0,(0,:0' + +vim.g.mapleader = ' ' +vim.g.maplocalleader = ' ' + +local colemakdh_binds = { + -- movement + { modes = { 'n', 'o', 'x' }, lhs = 'n', rhs = 'h', }, + { modes = { 'n', 'o', 'x' }, lhs = 'e', rhs = 'j', }, + { modes = { 'n', 'o', 'x' }, lhs = 'i', rhs = 'k', }, + { modes = { 'n', 'o', 'x' }, lhs = 'o', rhs = 'l', }, + { modes = { 'n' }, lhs = 'N', rhs = '^', }, + { modes = { 'n' }, lhs = 'O', rhs = '$', }, + + -- closing the loop of overwritten binds + { modes = { 'n', 'o', 'x'}, lhs = 'j', rhs = 'e', }, + { modes = { 'n', 'o', 'x'}, lhs = 'k', rhs = 'n', }, + { modes = { 'n', 'o', 'x'}, lhs = 'K', rhs = 'N', }, + { modes = { 'n', 'o', 'x'}, lhs = 'h', rhs = 'o', }, + { modes = { 'n', 'o', 'x'}, lhs = 'H', rhs = 'O', }, + { modes = { 'n', 'o', 'x'}, lhs = 'l', rhs = 'i', }, + { modes = { 'n', 'o', 'x'}, lhs = 'L', rhs = 'I', }, +} + +for _, bind in ipairs(colemakdh_binds) do + for _, mode in ipairs(bind.modes) do + vim.keymap.set(mode, bind.lhs, bind.rhs) + end +end + +-- disable man mode remaps +vim.g.no_man_maps = 1 + +vim.keymap.set('n', '<M-e>', '<cmd>cnext<CR>') +vim.keymap.set('n', '<M-i>', '<cmd>cprev<CR>') + +vim.api.nvim_create_autocmd('TextYankPost', { + desc = 'Highlight when yanking (copying) text', + group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }), + callback = function() + vim.hl.on_yank() + end, +}) + +local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim' +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = 'https://github.com/folke/lazy.nvim.git' + local out = vim.fn.system { 'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath } + if vim.v.shell_error ~= 0 then + error('Error cloning lazy.nvim:\n' .. out) + end +end + +local rtp = vim.opt.runtimepath +rtp:prepend(lazypath) + +require('lazy').setup({ + require 'plugins.nvim-mini', + require 'plugins.catppuccin', + require 'plugins.treesitter', + require 'plugins.telescope', +}) |
