set relativenumber set number set autoindent set clipboard+=unnamed " Use system clipboard set termguicolors set cursorline set ts=4 sw=4 "gets rid of --INSERT-- useful bc of lighline" set noshowmode set mouse=a "splits" set splitright set splitbelow call plug#begin() "file explorer" Plug 'preservim/nerdtree' "status line" Plug 'itchyny/lightline.vim' "color themes" Plug 'gilgigilgil/anderson.vim' Plug 'sainnhe/sonokai' "automatic parentheses" Plug 'jiangmiao/auto-pairs' "syntax highlighting" Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} "shortcut to comment multiple lines" Plug 'numToStr/Comment.nvim' Plug 'neovim/nvim-lspconfig' Plug 'hrsh7th/cmp-nvim-lsp' Plug 'hrsh7th/cmp-buffer' Plug 'hrsh7th/cmp-path' Plug 'hrsh7th/cmp-cmdline' Plug 'hrsh7th/nvim-cmp' " For vsnip users. Plug 'hrsh7th/cmp-vsnip' Plug 'hrsh7th/vim-vsnip' call plug#end() let $NVIM_TUI_ENABLE_TRUE_COLOR=1 " Start NERDTree fullscreen if no file specified, otherwise open in split autocmd StdinReadPre * let s:std_in=1 autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | execute 'NERDTree' | only | endif autocmd VimEnter * if argc() > 0 || exists("s:std_in") | NERDTree | wincmd p | endif autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif nnoremap n :NERDTreeFocus nnoremap :NERDTreeToggle let g:NERDTreeGitStatusWithFlags = 1 "let g:WebDevIconsUnicodeDecorateFolderNodes = 1 "let g:NERDTreeGitStatusNodeColorization = 1 "let g:NERDTreeColorMapCustom = { "\ "Staged" : "#0ee375", "\ "Modified" : "#d9bf91", "\ "Renamed" : "#51C9FC", "\ "Untracked" : "#FCE77C", "\ "Unmerged" : "#FC51E6", "\ "Dirty" : "#FFBD61", "\ "Clean" : "#87939A", "\ "Ignored" : "#808080" "\ } let g:NERDTreeIgnore = ['^node_modules$'] let g:lightline = { \ 'colorscheme': 'wombat', \ } let g:sonokai_style = 'shusia' let g:sonokai_better_performance = 1 colorscheme sonokai lua << EOF require'nvim-treesitter.configs'.setup { -- Install parsers for languages you use ensure_installed = { "c", "cpp", "python", "lua", "vim", "go", "html", "css", "javascript", "ocaml"}, -- Install all maintained parsers -- ensure_installed = "all", -- Syntax highlighting highlight = { enable = true, additional_vim_regex_highlighting = false, }, -- Indentation based on treesitter (experimental) indent = { enable = true }, -- Incremental selection based on the syntax tree incremental_selection = { enable = true, keymaps = { init_selection = "gnn", node_incremental = "grn", scope_incremental = "grc", node_decremental = "grm", }, } } require('Comment').setup() EOF lua <'] = 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' }, -- For vsnip users. -- { name = 'luasnip' }, -- For luasnip users. -- { name = 'ultisnips' }, -- For ultisnips users. -- { name = 'snippy' }, -- For snippy users. }, { { name = 'buffer' }, }) }) -- To use git you need to install the plugin petertriho/cmp-git and uncomment lines below -- Set configuration for specific filetype. --[[ cmp.setup.filetype('gitcommit', { sources = cmp.config.sources({ { name = 'git' }, }, { { name = 'buffer' }, }) }) require("cmp_git").setup() ]]-- -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). cmp.setup.cmdline({ '/', '?' }, { mapping = cmp.mapping.preset.cmdline(), sources = { { name = 'buffer' } } }) -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). cmp.setup.cmdline(':', { mapping = cmp.mapping.preset.cmdline(), sources = cmp.config.sources({ { name = 'path' } }, { { name = 'cmdline' } }), matching = { disallow_symbol_nonprefix_matching = false } }) -- Set up lspconfig. local capabilities = require('cmp_nvim_lsp').default_capabilities() -- Replace with each lsp server you've enabled. vim.lsp.config('', { capabilities = capabilities }) vim.lsp.enable('') EOF