diff --git a/init.lua b/init.lua index e7ab8c8..b5e9df1 100644 --- a/init.lua +++ b/init.lua @@ -24,5 +24,6 @@ require('lazy').setup({ require 'plugins.autocompletion', require 'plugins.gitsigns', require 'plugins.indent-blankline', - require 'plugins.misc' + require 'plugins.misc', + require 'plugins.copilot' }) diff --git a/lazy-lock.json b/lazy-lock.json index 96e8fdf..adf2772 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -5,6 +5,7 @@ "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, + "copilot.vim": { "branch": "release", "commit": "87038123804796ca7af20d1b71c3428d858a9124" }, "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, "gitsigns.nvim": { "branch": "main", "commit": "4baa13519c2168cc9a7890a3580c50226ed018fb" }, diff --git a/lua/core/keymaps.lua b/lua/core/keymaps.lua index 781daf9..c095800 100644 --- a/lua/core/keymaps.lua +++ b/lua/core/keymaps.lua @@ -5,9 +5,10 @@ vim.keymap.set({ 'n', 'v' }, '', '', { silent = true }) local opts = { noremap = true, silent = true } --- delete single character without copying into register +-- Delete single character without copying into register vim.keymap.set('n', 'x', '"_x', opts) +-- Improvement to up and down movements vim.keymap.set('n', '', 'zz', opts) vim.keymap.set('n', '', 'zz', opts) @@ -18,10 +19,10 @@ vim.keymap.set('n', '', ':vertical resize -2', opts) vim.keymap.set('n', '', ':vertical resize +2', opts) -- Window management -vim.keymap.set('n', 'sv', 'v', opts) -- split window vertically -vim.keymap.set('n', 'sh', 's', opts) -- split window horizontally -vim.keymap.set('n', 'se', '=', opts) -- make split windows equal width & height -vim.keymap.set('n', 'xs', ':close', opts) -- close current split window +vim.keymap.set('n', 'vs', 'v', { desc = 'Split window vertically' }) -- split window vertically +vim.keymap.set('n', 'hs', 's', { desc = 'Split window horizontally' }) -- split window horizontally +vim.keymap.set('n', 'es', '=', { desc = 'Equalize splits' }) -- make split windows equal width & height +vim.keymap.set('n', 'xs', ':close', { desc = 'Close split' }) -- close current split window -- Navigate between splits vim.keymap.set('n', '', ':wincmd k', opts) diff --git a/lua/core/options.lua b/lua/core/options.lua index f061894..c2829ab 100644 --- a/lua/core/options.lua +++ b/lua/core/options.lua @@ -1,3 +1,5 @@ +vim.g.loaded_netrw = 1 +vim.g.loaded_netrwPlugin = 1 vim.wo.number = true vim.o.relativenumber = true vim.o.clipboard = 'unnamedplus' @@ -11,33 +13,33 @@ vim.o.shiftwidth = 2 vim.o.tabstop = 2 vim.o.softtabstop = 2 vim.o.expandtab = true -vim.o.scrolloff = 4 -- Minimal number of screen lines to keep above and below the cursor (default: 0) -vim.o.sidescrolloff = 8 -- Minimal number of screen columns either side of cursor if wrap is `false` (default: 0) -vim.o.cursorline = false -- Highlight the current line (default: false) -vim.o.splitbelow = true -- Force all horizontal splits to go below current window (default: false) -vim.o.splitright = true -- Force all vertical splits to go to the right of current window (default: false) -vim.o.hlsearch = false -- Set highlight on search (default: true) -vim.o.showmode = false -- We don't need to see things like -- INSERT -- anymore (default: true) -vim.opt.termguicolors = true -- Set termguicolors to enable highlight groups (default: false) -vim.o.whichwrap = 'bs<>[]hl' -- Which "horizontal" keys are allowed to travel to prev/next line (default: 'b,s') -vim.o.numberwidth = 4 -- Set number column width to 2 {default 4} (default: 4) -vim.o.swapfile = false -- Creates a swapfile (default: true) -vim.o.smartindent = true -- Make indenting smarter again (default: false) -vim.o.showtabline = 2 -- Always show tabs (default: 1) -vim.o.backspace = 'indent,eol,start' -- Allow backspace on (default: 'indent,eol,start') -vim.o.pumheight = 10 -- Pop up menu height (default: 0) -vim.o.conceallevel = 0 -- So that `` is visible in markdown files (default: 1) -vim.wo.signcolumn = 'yes' -- Keep signcolumn on by default (default: 'auto') -vim.o.fileencoding = 'utf-8' -- The encoding written to a file (default: 'utf-8') -vim.o.cmdheight = 1 -- More space in the Neovim command line for displaying messages (default: 1) -vim.o.breakindent = true -- Enable break indent (default: false) -vim.o.updatetime = 250 -- Decrease update time (default: 4000) -vim.o.timeoutlen = 300 -- Time to wait for a mapped sequence to complete (in milliseconds) (default: 1000) -vim.o.backup = false -- Creates a backup file (default: false) -vim.o.writebackup = false -- If a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited (default: true) -vim.o.undofile = true -- Save undo history (default: false) -vim.o.completeopt = 'menuone,noselect' -- Set completeopt to have a better completion experience (default: 'menu,preview') -vim.opt.shortmess:append 'c' -- Don't give |ins-completion-menu| messages (default: does not include 'c') -vim.opt.iskeyword:append '-' -- Hyphenated words recognized by searches (default: does not include '-') -vim.opt.formatoptions:remove { 'c', 'r', 'o' } -- Don't insert the current comment leader automatically for auto-wrapping comments using 'textwidth', hitting in insert mode, or hitting 'o' or 'O' in normal mode. (default: 'croql') -vim.opt.runtimepath:remove '/usr/share/vim/vimfiles' -- Separate Vim plugins from Neovim in case Vim still in use (default: includes this path if Vim is installed) +vim.o.scrolloff = 4 +vim.o.sidescrolloff = 8 +vim.o.cursorline = false +vim.o.splitbelow = true +vim.o.splitright = true +vim.o.hlsearch = true +vim.o.showmode = false +vim.opt.termguicolors = true +vim.o.whichwrap = 'bs<>[]hl' +vim.o.numberwidth = 4 +vim.o.swapfile = false +vim.o.smartindent = true +vim.o.showtabline = 2 +vim.o.backspace = 'indent,eol,start' +vim.o.pumheight = 10 +vim.o.conceallevel = 0 +vim.wo.signcolumn = 'yes' +vim.o.fileencoding = 'utf-8' +vim.o.cmdheight = 1 +vim.o.breakindent = true +vim.o.updatetime = 250 +vim.o.timeoutlen = 300 +vim.o.backup = false +vim.o.writebackup = false +vim.o.undofile = true +vim.o.completeopt = 'menuone,noselect' +vim.opt.shortmess:append 'c' +vim.opt.iskeyword:append '-' +vim.opt.formatoptions:remove { 'c', 'r', 'o' } +vim.opt.runtimepath:remove '/usr/share/vim/vimfiles' diff --git a/lua/plugins/copilot.lua b/lua/plugins/copilot.lua new file mode 100644 index 0000000..1a80487 --- /dev/null +++ b/lua/plugins/copilot.lua @@ -0,0 +1,3 @@ +return { + 'github/copilot.vim', +} diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index fd7199c..1e72c4b 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -169,6 +169,7 @@ return { sqlls = {}, jsonls = {}, yamlls = {}, + gopls = {}, lua_ls = { -- cmd = {...}, -- filetypes = { ...}, diff --git a/lua/plugins/neotree.lua b/lua/plugins/neotree.lua index 87a5dd3..eddec39 100644 --- a/lua/plugins/neotree.lua +++ b/lua/plugins/neotree.lua @@ -335,6 +335,6 @@ return { }) vim.cmd([[nnoremap \ :Neotree reveal]]) - vim.keymap.set('n', 'e', ':Neotree toggle position=left', { noremap = true, silent = true }) + vim.keymap.set('n', 'ts', ':Neotree toggle position=left', { noremap = true, silent = true }) end, }