diff --git a/nvim/.gitignore b/nvim/.gitignore new file mode 100644 index 0000000..6b3503f --- /dev/null +++ b/nvim/.gitignore @@ -0,0 +1,2 @@ +plugin/packer_compiled.lua + diff --git a/nvim/README.md b/nvim/README.md index 57c50f2..51d5264 100644 --- a/nvim/README.md +++ b/nvim/README.md @@ -1,14 +1,4 @@ -custom config files for nvchad +# Serxoz init.lua +Prerequisite: install [ripgrep](https://github.com/BurntSushi/ripgrep). -## First run -In order to install nvchad pluggins and custom ones you must follow: -- sh install.sh -- :q -- exec nvim -- :PackerSync -- :MasonInstallAll -- now it must work fine - -## Add language to LSP -- Add lang server in "custom/plugins/lspconfig.lua" file. -- Add lang server to Mason custom override in "custom/override.lua" to install with ":MasonInstallAll" +Based on the [ThePrimeagen's one](https://github.com/ThePrimeagen/init.lua). diff --git a/nvim/after/plugin/bufferline.lua b/nvim/after/plugin/bufferline.lua new file mode 100644 index 0000000..c270bdf --- /dev/null +++ b/nvim/after/plugin/bufferline.lua @@ -0,0 +1,18 @@ +require("bufferline").setup{ + options = { + separator_style = "slant", + show_buffer_icons = true, + show_close_icon = false, + diagnostics = "nvim_lsp", + diagnostics_indicator = function(count, level) + local icon = level:match("error") and "" or "" + return icon .. count + end, + highlights = { + tab = { + fg = '#121212', + bg = '#120000' + } + } + } +} diff --git a/nvim/after/plugin/cloak.lua b/nvim/after/plugin/cloak.lua new file mode 100644 index 0000000..1eaf7d0 --- /dev/null +++ b/nvim/after/plugin/cloak.lua @@ -0,0 +1,22 @@ +require("cloak").setup({ + enabled = true, + cloak_character = "*", + -- The applied highlight group (colors) on the cloaking, see `:h highlight`. + highlight_group = "Comment", + patterns = { + { + -- Match any file starting with ".env". + -- This can be a table to match multiple file patterns. + file_pattern = { + ".env*", + "wrangler.toml", + ".dev.vars", + }, + -- Match an equals sign and any character after it. + -- This can also be a table of patterns to cloak, + -- example: cloak_pattern = { ":.+", "-.+" } for yaml files. + cloak_pattern = "=.+" + }, + }, +}) + diff --git a/nvim/after/plugin/colors.lua b/nvim/after/plugin/colors.lua new file mode 100644 index 0000000..b90577d --- /dev/null +++ b/nvim/after/plugin/colors.lua @@ -0,0 +1,15 @@ +require("gruvbox").setup({ + gruvbox_contrast_dark = 'hard', + gruvbox_invert_selection = '0', +}) + +function ColorMyPencils(color) + color = color or "gruvbox" + vim.cmd.colorscheme(color) + + vim.api.nvim_set_hl(0, "Normal", { bg = "none" }) + vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" }) + +end + +ColorMyPencils() diff --git a/nvim/after/plugin/comments.lua b/nvim/after/plugin/comments.lua new file mode 100644 index 0000000..e1f1358 --- /dev/null +++ b/nvim/after/plugin/comments.lua @@ -0,0 +1 @@ +require('nvim_comment').setup() diff --git a/nvim/after/plugin/fugitive.lua b/nvim/after/plugin/fugitive.lua new file mode 100644 index 0000000..d731e86 --- /dev/null +++ b/nvim/after/plugin/fugitive.lua @@ -0,0 +1,29 @@ +vim.keymap.set("n", "gs", vim.cmd.Git) + +local Serxoz_Fugitive = vim.api.nvim_create_augroup("Serxoz_Fugitive", {}) + +local autocmd = vim.api.nvim_create_autocmd +autocmd("BufWinEnter", { + group = Serxoz_Fugitive, + pattern = "*", + callback = function() + if vim.bo.ft ~= "fugitive" then + return + end + + local bufnr = vim.api.nvim_get_current_buf() + local opts = {buffer = bufnr, remap = false} + vim.keymap.set("n", "p", function() + vim.cmd.Git('push') + end, opts) + + -- rebase always + vim.keymap.set("n", "P", function() + vim.cmd.Git({'pull', '--rebase'}) + end, opts) + + -- NOTE: It allows me to easily set the branch i am pushing and any tracking + -- needed if i did not set the branch up correctly + vim.keymap.set("n", "t", ":Git push -u origin ", opts); + end, +}) diff --git a/nvim/after/plugin/go.lua b/nvim/after/plugin/go.lua deleted file mode 100644 index 482852d..0000000 --- a/nvim/after/plugin/go.lua +++ /dev/null @@ -1,5 +0,0 @@ -require('go').setup() --- Run gofmt + goimport on save -vim.api.nvim_exec([[ autocmd BufWritePre *.go :silent! lua require('go.format').gofmt() ]], false) -vim.api.nvim_exec([[ autocmd BufWritePre *.go :silent! lua require('go.format').goimport() ]], false) - diff --git a/nvim/after/plugin/harpoon.lua b/nvim/after/plugin/harpoon.lua new file mode 100644 index 0000000..6a8be59 --- /dev/null +++ b/nvim/after/plugin/harpoon.lua @@ -0,0 +1,12 @@ +local mark = require("harpoon.mark") +local ui = require("harpoon.ui") + +vim.keymap.set("n", "a", mark.add_file) +vim.keymap.set("n", "", ui.toggle_quick_menu) + +vim.keymap.set("n", "", function() ui.nav_file(1) end) +vim.keymap.set("n", "", function() ui.nav_file(2) end) +vim.keymap.set("n", "", function() ui.nav_file(3) end) +vim.keymap.set("n", "", function() ui.nav_file(4) end) + + diff --git a/nvim/after/plugin/init.lua b/nvim/after/plugin/init.lua deleted file mode 100644 index 2b710a4..0000000 --- a/nvim/after/plugin/init.lua +++ /dev/null @@ -1 +0,0 @@ -vim.cmd(":TSInstall all"); diff --git a/nvim/after/plugin/lsp.lua b/nvim/after/plugin/lsp.lua new file mode 100644 index 0000000..89f9461 --- /dev/null +++ b/nvim/after/plugin/lsp.lua @@ -0,0 +1,71 @@ +local lsp = require("lsp-zero") + +lsp.preset("recommended") + +lsp.ensure_installed({ + 'tsserver', + 'rust_analyzer', + 'jedi_language_server', + 'gopls', + 'cssls' +}) + +-- Fix Undefined global 'vim' +lsp.configure('lua-language-server', { + settings = { + Lua = { + diagnostics = { + globals = { 'vim' } + } + } + } +}) + + +local cmp = require('cmp') +local cmp_select = {behavior = cmp.SelectBehavior.Select} +local cmp_mappings = lsp.defaults.cmp_mappings({ + [''] = cmp.mapping.select_prev_item(cmp_select), + [''] = cmp.mapping.select_next_item(cmp_select), + [''] = cmp.mapping.confirm({ select = true }), + [""] = cmp.mapping.complete(), +}) + +cmp_mappings[''] = nil +cmp_mappings[''] = nil + +lsp.setup_nvim_cmp({ + mapping = cmp_mappings +}) + +lsp.set_preferences({ + suggest_lsp_servers = false, + sign_icons = { + error = 'E', + warn = 'W', + hint = 'H', + info = 'I' + } +}) + +lsp.on_attach(function(client, bufnr) + local opts = {buffer = bufnr, remap = false} + + vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts) + vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts) + vim.keymap.set("n", "vws", function() vim.lsp.buf.workspace_symbol() end, opts) + vim.keymap.set("n", "vd", function() vim.diagnostic.open_float() end, opts) + vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, opts) + vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, opts) + vim.keymap.set("n", "vca", function() vim.lsp.buf.code_action() end, opts) + vim.keymap.set("n", "vrr", function() vim.lsp.buf.references() end, opts) + vim.keymap.set("n", "vrn", function() vim.lsp.buf.rename() end, opts) + vim.keymap.set("i", "", function() vim.lsp.buf.signature_help() end, opts) +end) + +lsp.setup() + +vim.diagnostic.config({ + virtual_text = true +}) + diff --git a/nvim/after/plugin/refactoring.lua b/nvim/after/plugin/refactoring.lua new file mode 100644 index 0000000..2f9f70c --- /dev/null +++ b/nvim/after/plugin/refactoring.lua @@ -0,0 +1,5 @@ +require('refactoring').setup({}) + +vim.api.nvim_set_keymap("v", "ri", [[ lua require('refactoring').refactor('Inline Variable')]], {noremap = true, silent = true, expr = false}) + + diff --git a/nvim/after/plugin/telescope.lua b/nvim/after/plugin/telescope.lua new file mode 100644 index 0000000..f718f47 --- /dev/null +++ b/nvim/after/plugin/telescope.lua @@ -0,0 +1,14 @@ +local builtin = require('telescope.builtin') +vim.keymap.set('n', 'pf', builtin.find_files, {}) +vim.keymap.set('n', '', builtin.git_files, {}) +vim.keymap.set('n', 'ps', function() + builtin.grep_string({ search = vim.fn.input("Grep > ") }) +end) +vim.keymap.set('n', 'fh', builtin.help_tags, {}) +vim.keymap.set('n', 'ff', builtin.find_files, {}) +vim.keymap.set('n', 'fg', builtin.live_grep, {}) +vim.keymap.set('n', 'fb', builtin.buffers, {}) +vim.keymap.set('n', 'fw', function() + builtin.grep_string({ search = vim.fn.expand("") }) +end) + diff --git a/nvim/after/plugin/treesitter.lua b/nvim/after/plugin/treesitter.lua new file mode 100644 index 0000000..cec7dc2 --- /dev/null +++ b/nvim/after/plugin/treesitter.lua @@ -0,0 +1,23 @@ +require'nvim-treesitter.configs'.setup { + -- A list of parser names, or "all" + ensure_installed = { "help", "javascript", "typescript", "c", "lua", "rust", "python" }, + + -- Install parsers synchronously (only applied to `ensure_installed`) + sync_install = false, + + -- Automatically install missing parsers when entering buffer + -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally + auto_install = true, + + highlight = { + -- `false` will disable the whole extension + enable = true, + + -- Setting this to true will run `:h syntax` and tree-sitter at the same time. + -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). + -- Using this option may slow down your editor, and you may see some duplicate highlights. + -- Instead of true it can also be a list of languages + additional_vim_regex_highlighting = false, + }, +} + diff --git a/nvim/after/plugin/trouble.lua b/nvim/after/plugin/trouble.lua new file mode 100644 index 0000000..cf1256a --- /dev/null +++ b/nvim/after/plugin/trouble.lua @@ -0,0 +1,3 @@ +vim.keymap.set("n", "xq", "TroubleToggle quickfix", + {silent = true, noremap = true} +) diff --git a/nvim/after/plugin/undotree.lua b/nvim/after/plugin/undotree.lua new file mode 100644 index 0000000..97bb7ab --- /dev/null +++ b/nvim/after/plugin/undotree.lua @@ -0,0 +1,2 @@ +vim.keymap.set("n", "u", vim.cmd.UndotreeToggle) + diff --git a/nvim/after/plugin/zenmode.lua b/nvim/after/plugin/zenmode.lua new file mode 100644 index 0000000..753fbf8 --- /dev/null +++ b/nvim/after/plugin/zenmode.lua @@ -0,0 +1,30 @@ + +vim.keymap.set("n", "zz", function() + require("zen-mode").setup { + window = { + width = 90, + options = { } + }, + } + require("zen-mode").toggle() + vim.wo.wrap = false + vim.wo.number = true + vim.wo.rnu = true + ColorMyPencils() +end) + + +vim.keymap.set("n", "zZ", function() + require("zen-mode").setup { + window = { + width = 80, + options = { } + }, + } + require("zen-mode").toggle() + vim.wo.wrap = false + vim.wo.number = false + vim.wo.rnu = false + vim.opt.colorcolumn = "0" + ColorMyPencils() +end) diff --git a/nvim/clean.sh b/nvim/clean.sh index 5781b94..28cf193 100644 --- a/nvim/clean.sh +++ b/nvim/clean.sh @@ -1,5 +1,3 @@ #!/bin/sh -rm -rf ~/.config/nvim -rm -rf ~/.local/share/nvim -rm -rf ~/.cache/nvim +rm ~/.config/nvim diff --git a/nvim/custom/chadrc.lua b/nvim/custom/chadrc.lua deleted file mode 100644 index be5f992..0000000 --- a/nvim/custom/chadrc.lua +++ /dev/null @@ -1,20 +0,0 @@ -local M = {} - -local override = require "custom.override" - -M.plugins = { - override = { - ["nvim-treesitter/nvim-treesitter"] = override.treesitter, - ["williamboman/mason.nvim"] = override.mason, - }, - user = require "custom.plugins", -} - -M.ui = { - theme = "gruvchad", - -} - -M.mappings = require "custom.mappings" - -return M diff --git a/nvim/custom/init.lua b/nvim/custom/init.lua deleted file mode 100644 index 271425d..0000000 --- a/nvim/custom/init.lua +++ /dev/null @@ -1,7 +0,0 @@ -vim.opt.rnu = true -vim.opt.colorcolumn = "80" -vim.opt.scrolloff = 8 - -vim.opt.tabstop = 4 -vim.opt.shiftwidth = 4 -vim.opt.expandtab = true diff --git a/nvim/custom/mappings.lua b/nvim/custom/mappings.lua deleted file mode 100644 index fd30fa4..0000000 --- a/nvim/custom/mappings.lua +++ /dev/null @@ -1,65 +0,0 @@ -local M = {} - -M.general = { - n = { - [" "] = { ":noh", "Clean search highlight" }, - ["d"] = { "\"_d", "Delete without yank" }, - }, - v = { - ["J"] = { ":m '>+1gv=gv", "Move visual block up" }, - ["K"] = { ":m '<-2gv=gv", "Move visual block down" }, - ["<"] = { ""] = { ">gv", "Keep visual on shift" }, - ["d"] = { "\"_d", "Delete without yank" }, - } -} - -M.harpoon = { - n = { - ["ss"] = { - function() - require("harpoon.ui").toggle_quick_menu() - end, - " harpoon show menu" - }, - ["sa"] = { - function() - require("harpoon.mark").add_file() - end, - " harpoon add file" - }, - ["su"] = { - function() - require("harpoon.ui").nav_file(1) - end, - " harpoon go to file 1" - }, - ["si"] = { - function() - require("harpoon.ui").nav_file(2) - end, - " harpoon go to file 2" - }, - ["so"] = { - function() - require("harpoon.ui").nav_file(3) - end, - " harpoon go to file 3" - }, - ["sp"] = { - function() - require("harpoon.ui").nav_file(4) - end, - " harpoon go to file 4" - }, - } -} - -M.telescope = { - n = { - ["fg"] = { " Telescope live_grep ", " live grep" }, - ["fm"] = { " Telescope marks ", " marks" }, - } -} - -return M diff --git a/nvim/custom/override.lua b/nvim/custom/override.lua deleted file mode 100644 index 9c1475f..0000000 --- a/nvim/custom/override.lua +++ /dev/null @@ -1,28 +0,0 @@ -local M = {} - -M.treesitter = { - ensure_installed = { - "vim", - "html", - "css", - "javascript", - "json", - "toml", - "markdown", - "c", - "bash", - "lua", - "python", - "go", - }, -} - -M.mason = { - ensure_installed = { - "gopls", - "pyright", - "rust-analyzer", - } -} - -return M diff --git a/nvim/custom/plugins/harpoon.lua b/nvim/custom/plugins/harpoon.lua deleted file mode 100644 index 1322ff8..0000000 --- a/nvim/custom/plugins/harpoon.lua +++ /dev/null @@ -1,2 +0,0 @@ -local M = {} -return M diff --git a/nvim/custom/plugins/init.lua b/nvim/custom/plugins/init.lua deleted file mode 100644 index 4888e87..0000000 --- a/nvim/custom/plugins/init.lua +++ /dev/null @@ -1,17 +0,0 @@ -return { - ["neovim/nvim-lspconfig"] = { - config = function() - require "plugins.configs.lspconfig" - require "custom.plugins.lspconfig" - end, - }, - ['ThePrimeagen/harpoon'] = { - module = "harpoon", - ft = "harpoon", - config = function() - require "custom.plugins.harpoon" - end, - }, - ['ray-x/go.nvim'] = {}, - ['ray-x/guihua.lua'] = {}, -} diff --git a/nvim/custom/plugins/lspconfig.lua b/nvim/custom/plugins/lspconfig.lua deleted file mode 100644 index cac6bfd..0000000 --- a/nvim/custom/plugins/lspconfig.lua +++ /dev/null @@ -1,13 +0,0 @@ --- custom.plugins.lspconfig -local on_attach = require("plugins.configs.lspconfig").on_attach -local capabilities = require("plugins.configs.lspconfig").capabilities - -local lspconfig = require "lspconfig" -local servers = { "html", "cssls", "clangd", "gopls", "pyright", "rust_analyzer"} - -for _, lsp in ipairs(servers) do - lspconfig[lsp].setup { - on_attach = on_attach, - capabilities = capabilities, - } -end diff --git a/nvim/init.lua b/nvim/init.lua new file mode 100644 index 0000000..94783d8 --- /dev/null +++ b/nvim/init.lua @@ -0,0 +1,2 @@ +require("serxoz") +require('serxoz.packer') diff --git a/nvim/install.sh b/nvim/install.sh index 0ce6d4b..0581f38 100644 --- a/nvim/install.sh +++ b/nvim/install.sh @@ -1,9 +1,5 @@ #!/bin/sh -rm -rf ~/.config/nvim -rm -rf ~/.local/share/nvim -rm -rf ~/.cache/nvim -git clone https://github.com/NvChad/NvChad ~/.config/nvim --depth 1 ; nvim -ln -s $HOME/dotfiles/nvim/custom $HOME/.config/nvim/lua/custom -ln -s $HOME/dotfiles/nvim/after $HOME/.config/nvim/after +rm ~/.config/nvim +ln -s $HOME/dotfiles/nvim $HOME/.config/. diff --git a/nvim/lua/serxoz/init.lua b/nvim/lua/serxoz/init.lua new file mode 100644 index 0000000..c7b51d1 --- /dev/null +++ b/nvim/lua/serxoz/init.lua @@ -0,0 +1,33 @@ +require("serxoz.set") +require("serxoz.remap") + +local augroup = vim.api.nvim_create_augroup +local SerxozGroup = augroup('Serxoz', {}) + +local autocmd = vim.api.nvim_create_autocmd +local yank_group = augroup('HighlightYank', {}) + +function R(name) + require("plenary.reload").reload_module(name) +end + +autocmd('TextYankPost', { + group = yank_group, + pattern = '*', + callback = function() + vim.highlight.on_yank({ + higroup = 'IncSearch', + timeout = 40, + }) + end, +}) + +autocmd({"BufWritePre"}, { + group = SerxozGroup, + pattern = "*", + command = [[%s/\s\+$//e]], +}) + +vim.g.netrw_browse_split = 0 +vim.g.netrw_banner = 0 +vim.g.netrw_winsize = 25 diff --git a/nvim/lua/serxoz/packer.lua b/nvim/lua/serxoz/packer.lua new file mode 100644 index 0000000..e05ac15 --- /dev/null +++ b/nvim/lua/serxoz/packer.lua @@ -0,0 +1,76 @@ +-- This file can be loaded by calling `lua require('plugins')` from your init.vim + +-- Only required if you have packer configured as `opt` +vim.cmd.packadd('packer.nvim') + +return require('packer').startup(function(use) + -- Packer can manage itself + use 'wbthomason/packer.nvim' + + use { + 'nvim-telescope/telescope.nvim', tag = '0.1.0', + -- or , branch = '0.1.x', + requires = { {'nvim-lua/plenary.nvim'} } + } + + use({ + 'gruvbox-community/gruvbox', + as = 'gruvbox', + config = function() + vim.cmd('colorscheme gruvbox') + end + }) + + use({ + "folke/trouble.nvim", + config = function() + require("trouble").setup { + icons = false, + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + } + end + }) + + + use({"nvim-treesitter/nvim-treesitter", run = ":TSUpdate"}) + use("nvim-treesitter/playground") + use("theprimeagen/harpoon") + use("theprimeagen/refactoring.nvim") + use("mbbill/undotree") + use("tpope/vim-fugitive") + use("nvim-treesitter/nvim-treesitter-context"); + + use { + 'VonHeikemen/lsp-zero.nvim', + branch = 'v1.x', + requires = { + -- LSP Support + {'neovim/nvim-lspconfig'}, + {'williamboman/mason.nvim'}, + {'williamboman/mason-lspconfig.nvim'}, + + -- Autocompletion + {'hrsh7th/nvim-cmp'}, + {'hrsh7th/cmp-buffer'}, + {'hrsh7th/cmp-path'}, + {'saadparwaiz1/cmp_luasnip'}, + {'hrsh7th/cmp-nvim-lsp'}, + {'hrsh7th/cmp-nvim-lua'}, + + -- Snippets + {'L3MON4D3/LuaSnip'}, + {'rafamadriz/friendly-snippets'}, + } + } + + use("folke/zen-mode.nvim") + use("github/copilot.vim") + use("eandrju/cellular-automaton.nvim") + use("laytan/cloak.nvim") + use("terrortylor/nvim-comment") + use {'akinsho/bufferline.nvim', tag = "v3.*", requires = 'kyazdani42/nvim-web-devicons'} + +end) + diff --git a/nvim/lua/serxoz/remap.lua b/nvim/lua/serxoz/remap.lua new file mode 100644 index 0000000..e165d1a --- /dev/null +++ b/nvim/lua/serxoz/remap.lua @@ -0,0 +1,51 @@ + +vim.g.mapleader = " " +vim.keymap.set("n", "pv", vim.cmd.Ex) + +vim.keymap.set("v", "J", ":m '>+1gv=gv") +vim.keymap.set("v", "K", ":m '<-2gv=gv") + +vim.keymap.set("n", "J", "mzJ`z") +vim.keymap.set("n", "", "zz") +vim.keymap.set("n", "", "zz") +vim.keymap.set("n", "n", "nzzzv") +vim.keymap.set("n", "N", "Nzzzv") + +vim.keymap.set("n", "vwm", function() + require("vim-with-me").StartVimWithMe() +end) +vim.keymap.set("n", "svwm", function() + require("vim-with-me").StopVimWithMe() +end) + +-- greatest remap ever +vim.keymap.set("x", "p", [["_dP]]) + +-- next greatest remap ever : asbjornHaland +vim.keymap.set({"n", "v"}, "y", [["+y]]) +vim.keymap.set("n", "Y", [["+Y]]) + +vim.keymap.set({"n", "v"}, "d", [["_d]]) + +-- This is going to get me cancelled +vim.keymap.set("i", "", "") + +vim.keymap.set("n", "Q", "") +vim.keymap.set("n", "", "silent !tmux neww tmux-sessionizer") +vim.keymap.set("n", "f", vim.lsp.buf.format) + +vim.keymap.set("n", "", "cnextzz") +vim.keymap.set("n", "", "cprevzz") +vim.keymap.set("n", "k", "lnextzz") +vim.keymap.set("n", "j", "lprevzz") + +vim.keymap.set("n", "s", [[:%s/\<\>//gI]]) +vim.keymap.set("n", "x", "!chmod +x %", { silent = true }) + +vim.keymap.set("n", "vpp", "e ~/.dotfiles/nvim/.config/nvim/lua/theprimeagen/packer.lua"); +vim.keymap.set("n", "mr", "CellularAutomaton make_it_rain"); + +vim.keymap.set("n", "", function() + vim.cmd("so") +end) + diff --git a/nvim/lua/serxoz/set.lua b/nvim/lua/serxoz/set.lua new file mode 100644 index 0000000..18acbf1 --- /dev/null +++ b/nvim/lua/serxoz/set.lua @@ -0,0 +1,32 @@ +vim.opt.guicursor = "" + +vim.opt.nu = true +vim.opt.relativenumber = true + +vim.opt.tabstop = 4 +vim.opt.softtabstop = 4 +vim.opt.shiftwidth = 4 +vim.opt.expandtab = true + +vim.opt.smartindent = true + +vim.opt.wrap = false + +vim.opt.swapfile = false +vim.opt.backup = false +vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir" +vim.opt.undofile = true + +vim.opt.hlsearch = false +vim.opt.incsearch = true + +vim.opt.termguicolors = true + +vim.opt.scrolloff = 8 +vim.opt.signcolumn = "yes" +vim.opt.isfname:append("@-@") + +vim.opt.updatetime = 50 + +vim.opt.colorcolumn = "80" +