-- Bootstrap lazy.nvim 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 vim.api.nvim_echo({ { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, { out, "WarningMsg" }, { "\nPress any key to exit..." }, }, true, {}) vim.fn.getchar() os.exit(1) end end _G.vim = _G.vim or {} vim.opt.rtp:prepend(lazypath) -- Make sure to setup `mapleader` and `maplocalleader` before -- loading lazy.nvim so that mappings are correct. -- This is also a good place to setup other settings (vim.opt) vim.g.mapleader = " " vim.g.maplocalleader = "\\" -- Line numbers vim.opt.number = true vim.opt.relativenumber = true vim.opt.signcolumn = "yes" -- Tabs and indentation vim.opt.tabstop = 4 vim.opt.softtabstop = 4 vim.opt.shiftwidth = 4 vim.opt.expandtab = true vim.opt.autoindent = true vim.opt.smartindent = true -- Line wrapping vim.opt.wrap = false vim.opt.linebreak = true -- Search settings vim.opt.ignorecase = true vim.opt.smartcase = true vim.opt.hlsearch = true vim.opt.incsearch = true -- Appearance vim.opt.termguicolors = true vim.opt.background = "dark" vim.opt.cursorline = true vim.opt.showmode = false -- Backspace vim.opt.backspace = "indent,eol,start" -- Clipboard vim.opt.clipboard = "unnamedplus" -- Split windows vim.opt.splitright = true vim.opt.splitbelow = true -- Folding vim.o.foldenable = true vim.opt.foldmethod = "expr" vim.opt.foldexpr = "nvim_treesitter#foldexpr()" vim.opt.foldlevelstart = 99 -- Better performance vim.opt.updatetime = 250 vim.opt.timeoutlen = 300 vim.opt.undofile = true -- Completion vim.opt.completeopt = "menu,menuone,noselect" -- Scrolling vim.opt.scrolloff = 8 vim.opt.sidescrolloff = 8 -- Setup lazy.nvim require("lazy").setup({ spec = { { import = "plugins" }, }, -- Configure any other settings here. See the documentation for more details. -- colorscheme that will be used when installing plugins. install = { colorscheme = { "nord" } }, -- automatically check for plugin updates checker = { enabled = true }, })