{ config, lib, pkgs, this, ... }: with lib; let cfg = config.nixfiles.modules.vim; in { options.nixfiles.modules.vim.enable = mkEnableOption "Vim"; config = mkIf cfg.enable { programs.vim.package = with pkgs; (vim_configurable.override { features = "normal"; cscopeSupport = false; darwinSupport = pkgs.stdenv.isDarwin; guiSupport = false; luaSupport = false; multibyteSupport = false; netbeansSupport = false; nlsSupport = false; perlSupport = false; pythonSupport = false; rubySupport = false; tclSupport = false; ximSupport = false; }) .customize { name = "vim"; vimrcConfig = { customRC = readFile ./rc.vim; packages.myVimPackage.start = with vimPlugins; [ editorconfig-vim vim-eunuch vim-nix vim-sleuth vim-surround vim-unimpaired ]; }; }; environment = { systemPackages = [config.programs.vim.package]; variables.EDITOR = mkOverride 100 "vim"; }; }; }