{ pkgs, lib, config, nixosConfig, ... }: let inherit (builtins) readFile; in { programs.vim = { enable = lib.mkDefault true; extraConfig = readFile vim/init.vim #+ readFile home/vim/syntastic.vim #+ readFile home/vim/coc.vim + readFile vim/ale.vim ; # Plugin list: # nix-instantiate -E --eval 'builtins.attrNames (import {}).vimPlugins' plugins = [ #pkgs.vimPlugins.vim-lsc pkgs.vimPlugins.gitgutter #pkgs.vimPlugins.nvim-yarp #pkgs.vimPlugins.deoplete-nvim #pkgs.vimPlugins.deoplete-lsp #pkgs.vimPlugins.LanguageClient-neovim #pkgs.vimPlugins.fzf-vim #pkgs.vimPlugins.echodoc pkgs.vimPlugins.ale #pkgs.vimPlugins.indentLine #pkgs.vimPlugins.vim-indent-guides #pkgs.vimPlugins.coc-nvim #pkgs.vimPlugins.coc-diagnostic #pkgs.vimPlugins.coc-json #pkgs.vimPlugins.coc-lists pkgs.vimPlugins.easy-align pkgs.vimPlugins.hoogle pkgs.vimPlugins.Recover-vim #pkgs.vimPlugins.syntastic #pkgs.vimPlugins.The_NERD_tree pkgs.vimPlugins.vim-dirvish pkgs.vimPlugins.vim-buffergator pkgs.vimPlugins.vim-markdown pkgs.vimPlugins.vimproc #pkgs.vimPlugins.fugitive pkgs.vimPlugins.vim-ghcid-quickfix ]; } /* // lib.optionalAttrs (!nixosConfig.services.xserver.enable) { packageConfigurable = # This has the drawback of recompiling/sending vim pkgs.vim-full.override { features = "normal"; config.vim.gui = "none"; }; }*/; programs.neovim = { extraConfig = readFile vim/init.vim + readFile vim/ale.vim; plugins = [ #pkgs.vimPlugins.vim-lsc pkgs.vimPlugins.gitgutter #pkgs.vimPlugins.nvim-yarp #pkgs.vimPlugins.deoplete-nvim #pkgs.vimPlugins.deoplete-lsp #pkgs.vimPlugins.LanguageClient-neovim #pkgs.vimPlugins.fzf-vim #pkgs.vimPlugins.echodoc pkgs.vimPlugins.ale #pkgs.vimPlugins.indentLine #pkgs.vimPlugins.vim-indent-guides #pkgs.vimPlugins.coc-nvim #pkgs.vimPlugins.coc-diagnostic #pkgs.vimPlugins.coc-json #pkgs.vimPlugins.coc-lists pkgs.vimPlugins.easy-align pkgs.vimPlugins.hoogle pkgs.vimPlugins.Recover-vim #pkgs.vimPlugins.syntastic #pkgs.vimPlugins.The_NERD_tree pkgs.vimPlugins.vim-dirvish pkgs.vimPlugins.vim-buffergator pkgs.vimPlugins.vim-markdown pkgs.vimPlugins.vimproc #pkgs.vimPlugins.fugitive ]; }; }