------------------------- -------- OPTIONS -------- ------------------------- vim.opt.mouse = 'a' vim.opt.history = 1000 -- vim.opt.ruler = true -- vim.opt.ruler = true -- vim.opt.number = true vim.opt.showcmd = true vim.opt.ttimeoutlen = 100 vim.opt.backspace = 'indent,eol,start' vim.opt.tabstop = 2 vim.opt.expandtab = true vim.opt.shiftwidth = 2 vim.opt.softtabstop = 2 vim.opt.autoindent = true vim.opt.showmatch = true vim.opt.incsearch = true vim.opt.hlsearch = true vim.opt.wrapscan = true vim.opt.ignorecase = true vim.opt.smartcase = true vim.opt.hidden = true vim.opt.splitright = true vim.opt.splitbelow = true vim.opt.swapfile = false vim.opt.wildmode = 'longest,list' vim.opt.wildignore = vim.opt.wildignore + 'main,*.o,*.d,*.aux,*.bbl,*.lof,*.loa,*.blg,*.fdb_latexmk,*.fls,*.tdo,*.pdf,*.pyc' vim.opt.spell = false vim.opt.foldmethod = 'syntax' vim.opt.foldopen = vim.opt.foldopen - 'block' vim.opt.foldlevel = 99 vim.opt.lazyredraw = true vim.opt.listchars = 'eol:¬,tab:▸ ,trail:·' vim.opt.fillchars = 'vert:|,fold: ' vim.opt.list = true vim.opt.laststatus = 2 vim.opt.scrolloff = 8 vim.opt.background = 'light' vim.opt.wrap = true vim.opt.showbreak = '..' vim.opt.errorbells = false vim.opt.visualbell = false vim.opt.title = true vim.opt.autoread = true vim.opt.syntax = 'on' vim.opt.encoding = 'utf-8' vim.opt.completeopt = 'menu,menuone,noselect' ---------------------------- -------- CLIPBOARD --------- ---------------------------- -- if vim.fn.has("wsl") == 1 then vim.opt.clipboard:append('unnamedplus') -- end ---------------------------- -------- COMMANDS ---------- ---------------------------- vim.cmd('filetype plugin indent on') -- vim.cmd('colorscheme lucius') -- vim.cmd('LuciusWhite') ------------------------------ ---------- AUTOGROUPS -------- ------------------------------ vim.api.nvim_create_augroup('VimIntern', { clear = true }) vim.api.nvim_create_autocmd({'FocusGained', 'BufEnter', 'CursorMoved', 'CursorMovedI', 'CursorHold', 'CursorHoldI'}, { group = 'VimIntern', pattern = '*', command = 'silent! checktime' }) vim.api.nvim_create_autocmd('BufEnter', { group = 'VimIntern', pattern = '*', command = 'silent! lcd %:p:h' }) ----------------------------- ---------- FUNCTIONS -------- ----------------------------- vim.api.nvim_create_user_command('TrimWhiteSpace', function() vim.cmd('%s/\\s\\+$//e') end, {}) vim.g.mapleader = " " -- Navigation vim.keymap.set('n', 'j', 'gj', {}) vim.keymap.set('n', 'k', 'gk', {}) vim.keymap.set('v', 'j', 'gj', {}) vim.keymap.set('v', 'k', 'gk', {}) vim.keymap.set('n', '', 'h', {}) vim.keymap.set('n', '', 'j', {}) vim.keymap.set('n', '', 'k', {}) vim.keymap.set('n', '', 'l', {}) vim.keymap.set('n', 's', ':call WindowSwap#EasyWindowSwap()', {}) -- Convenience vim.keymap.set('n', 'w', ':w', { silent = true }) vim.keymap.set('n', 'F', ':e.', {}) vim.keymap.set('n', 'Y', 'y$', {}) -- Telescope local telebuiltin = require('telescope.builtin') vim.keymap.set('n', 'ff', telebuiltin.find_files, { silent = true }) vim.keymap.set('n', 'fg', telebuiltin.live_grep, { silent = true }) vim.keymap.set('n', 'fs', telebuiltin.grep_string, { silent = true }) vim.keymap.set('n', 'o', telebuiltin.buffers, { silent = true }) vim.keymap.set('n', 'fh', telebuiltin.help_tags, { silent = true }) ---- Yanky --vim.keymap.set({"n","x"}, "p", "(YankyPutAfter)") --vim.keymap.set({"n","x"}, "P", "(YankyPutBefore)") --vim.keymap.set({"n","x"}, "gp", "(YankyGPutAfter)") --vim.keymap.set({"n","x"}, "gP", "(YankyGPutBefore)") --vim.keymap.set("n", "", "(YankyCycleForward)") --vim.keymap.set("n", "", "(YankyCycleBackward)") --vim.keymap.set({"n","x"}, "y", "(YankyYank)") -- Undotree vim.keymap.set('n', 'u', vim.cmd.UndotreeToggle) ---- nnoremap t :CtrlPBufTagAll ---- nnoremap T :TagbarToggle vim.g.delimitMate_expand_space=1 vim.g.delimitMate_expand_cr = 1 vim.g.tagbar_left=1 vim.g.tagbar_autoclose=1 vim.g.tagbar_autofocus=1 --vim.g.windowswap_map_keys=0 local cmp = require('cmp') local lspkind = require('lspkind') --cmp.setup({ -- snippet = { -- expand = function(args) -- vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. -- end, -- }, -- window = { -- completion = cmp.config.window.bordered(), -- documentation = cmp.config.window.bordered(), -- }, -- mapping = cmp.mapping.preset.insert({ -- [''] = cmp.mapping.scroll_docs(-4), -- [''] = cmp.mapping.scroll_docs(4), -- [''] = cmp.mapping.complete(), -- [''] = cmp.mapping.abort(), -- [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. -- }), -- sources = cmp.config.sources({ -- { name = 'nvim_lsp' }, -- { name = 'vsnip' }, -- { name = 'path' }, -- { name = 'cmp_yanky' }, -- { name = 'git' }, -- { name = 'copilot' }, -- -- }, { -- { name = 'buffer', keyword_length = 2 }, -- }), -- formatting = { -- format = lspkind.cmp_format({ -- -- mode = "symbol_text", -- mode = "symbol", -- menu = ({ -- buffer = "[buf]", -- nvim_lsp = "[lsp]", -- vsnip = "[snip]", -- nvim_lua = "[lua]", -- latex_symbols = "[tex]", -- path = "[path]", -- cmp_yanky = "[yank]", -- copilot = "[copilot]", -- }), -- symbol_map = { Copilot = "" } -- }), -- }, --}) ---- -- Set configuration for specific filetype. ---- cmp.setup.filetype('gitcommit', { ---- sources = cmp.config.sources({ ---- { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git). ---- }, { ---- { name = 'buffer' }, ---- }) ---- }) --cmp.setup.cmdline({ '/', '?' }, { -- mapping = cmp.mapping.preset.cmdline(), -- sources = { -- { name = 'buffer' } -- } --}) --cmp.setup.cmdline(':', { -- mapping = cmp.mapping.preset.cmdline(), -- sources = cmp.config.sources({ -- { name = 'path' } -- }, { -- { name = 'cmdline' } -- }), -- matching = { disallow_symbol_nonprefix_matching = false } --}) --local capabilities = require('cmp_nvim_lsp').default_capabilities() local lspconfig = require("lspconfig") --lspconfig.gopls.setup({ capabilities = capabilities }) --lspconfig.svelte.setup({ capabilities = capabilities }) --lspconfig.pyright.setup({ capabilities = capabilities }) --lspconfig.omnisharp.setup({ capabilities = capabilities }) --lspconfig.clangd.setup({ capabilities = capabilities }) --lspconfig.dockerls.setup({ capabilities = capabilities }) --lspconfig.docker_compose_language_service.setup({ capabilities = capabilities }) --lspconfig.flow.setup({ capabilities = capabilities }) lspconfig.marksman.setup({ capabilities = capabilities }) --lspconfig.als.setup({ capabilities = capabilities }) --lspconfig.sqls.setup({ capabilities = capabilities }) --lspconfig.yamlls.setup({ capabilities = capabilities }) --lspconfig.nil_ls.setup({ capabilities = capabilities }) require("yanky").setup({ ring = { history_length = 100, storage = "shada", sync_with_numbered_registers = true, cancel_event = "update", }, system_clipboard = { sync_with_ring = true, }, preserve_cursor_position = { enabled = true, }, }) require("telescope").load_extension("yank_history") require'nvim-treesitter.configs'.setup { -- ensure_installed = { "lua", "vim", "help" }, ensure_installed = {}, sync_install = false, auto_install = false, highlight = { enable = true, disable = function(lang, buf) local max_filesize = 100 * 1024 -- 100 KB local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) if ok and stats and stats.size > max_filesize then return true end end, additional_vim_regex_highlighting = false, }, } require('lualine').setup({ options = { icons_enabled = true, theme = 'Tomorrow', component_separators = { left = '', right = ''}, section_separators = { left = '', right = ''}, disabled_filetypes = { statusline = {}, winbar = {}, }, ignore_focus = {}, always_divide_middle = true, globalstatus = false, refresh = { statusline = 1000, tabline = 1000, winbar = 1000, } }, sections = { lualine_a = {'mode'}, lualine_b = {'branch', 'diff', 'diagnostics'}, lualine_c = {'filename'}, lualine_x = {'encoding', 'fileformat', 'filetype'}, lualine_y = {'progress'}, lualine_z = {'location'} }, inactive_sections = { lualine_a = {}, lualine_b = {}, lualine_c = {'filename'}, lualine_x = {'location'}, lualine_y = {}, lualine_z = {} }, tabline = {}, winbar = {}, inactive_winbar = {}, extensions = {} }) --require("copilot").setup({ -- suggestion = { enabled = false }, -- panel = { enabled = false }, --}) --require("copilot_cmp").setup() require("aerial").setup({ -- optionally use on_attach to set keymaps when aerial has attached to a buffer on_attach = function(bufnr) -- Jump forwards/backwards with '{' and '}' vim.keymap.set("n", "{", "AerialPrev", { buffer = bufnr }) vim.keymap.set("n", "}", "AerialNext", { buffer = bufnr }) end, }) -- You probably also want to set a keymap to toggle aerial vim.keymap.set("n", "a", "AerialToggle!")