{ config, pkgs, ... }: { home.packages = with pkgs; [fzf fd]; programs.neovim = { enable = true; withNodeJs = true; withPython3 = true; extraPython3Packages = ps: with ps; [black isort flake8 ipdb]; #extraPackages = with pkgs; []; plugins = with pkgs.vimPlugins; [ # tree-sitter (code parser) (nvim-treesitter.withPlugins (_: pkgs.tree-sitter.allGrammars)) # Eye candy nvim-web-devicons base16-vim # Telescope (fuzzy finding) { plugin = telescope-nvim; config = '' nnoremap ff lua require('telescope.builtin').find_files() nnoremap fg lua require('telescope.builtin').live_grep() nnoremap fb lua require('telescope.builtin').buffers() nnoremap fh lua require('telescope.builtin').help_tags() ''; } { plugin = telescope-file-browser-nvim; type = "lua"; config = '' vim.api.nvim_set_keymap( "n", "fb", ":Telescope file_browser", { noremap = true } ) require("telescope").load_extension("file_browser") ''; } { plugin = telescope-coc-nvim; type = "lua"; config = '' require("telescope").setup({ extensions = { coc = { prefer_locations = true; } } }) require("telescope").load_extension("coc") vim.api.nvim_set_keymap( "n", "coc", ":Telescope coc", { noremap = true } ) ''; } # tmux integration tmux-navigator ]; coc = { enable = true; settings = '' { coc.preferences.formatOnSaveFiletypes": [ "*" ], python.formatting.provider": "black" } ''; }; extraConfig = '' let mapleader = "'" " Colorscheme if !exists('g:colors_name') || g:colors_name != 'base16-darktooth' set background=dark let base16colorspace=256 colorscheme base16-darktooth hi Normal ctermbg=NONE guibg=NONE endif ''; }; }