{ config, pkgs, ... }: { programs.neovim = { enable = true; defaultEditor = true; viAlias = true; vimAlias = true; plugins = with pkgs.vimPlugins; [ # Vim theme vim-airline vim-airline-themes # Internal clipboard vim-vsnip cmp-vsnip # Autocomplete manager lspkind-nvim # Autocomplete plugins cmp-nvim-lsp cmp-buffer cmp-path cmp-cmdline nvim-cmp # Hex color visualizer and color theme nvim-colorizer-lua vim-monokai-pro # Discord RPC vimsence # Nerdtree nerdtree vim-nerdtree-syntax-highlight # Misc languages kdl-vim ]; extraConfig = '' 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' } }, { { name = 'buffer' }, }) }) -- Use buffer source for '/' and '?' cmp.setup.cmdline({ '/', '?' }, { mapping = cmp.mapping.preset.cmdline(), sources = { { name = 'buffer' } } }) -- Use cmdline & path source for ':' cmp.setup.cmdline(':', { mapping = cmp.mapping.preset.cmdline(), sources = cmp.config.sources({ { name = 'path' } }, { { name = 'cmdline' } }) }) EOF colorscheme monokai_pro let g:airline_theme='onedark' let g:airline#extensions#tabline#enabled = 1 hi Normal guibg=none ctermbg=235 hi Visual guibg=#${config.look.colors.mid} ctermbg=238 hi Pmenu guibg=#${config.look.colors.mid} ctermbg=238 hi EndOfBuffer guibg=none ctermbg=235 hi LineNr guibg=none ctermbg=none lua require'colorizer'.setup() set nu rnu set termguicolors set mouse=a set undofile set undodir=$HOME/.local/share/nvim/undo set undolevels=100 set undoreload=10000 nmap :bnext nmap :bprev nmap :bd nmap :NERDTreeToggleVCS ''; }; }