{ pkgs, ... }: { environment.variables.EDITOR = pkgs.lib.mkForce "nvim"; environment.shellAliases.vi = "nvim"; environment.shellAliases.vim = "nvim"; environment.shellAliases.view = "nvim -R"; nixpkgs.config.packageOverrides = pkgs: { vimPlugins = pkgs.vimPlugins // { cheat-sh-vim = pkgs.callPackage { }; vim-fetch = pkgs.callPackage { }; vim-colors-paramount = pkgs.callPackage { }; vim-256noir = pkgs.callPackage { }; icalendar-vim = pkgs.callPackage { }; todo-txt-vim = pkgs.callPackage { }; jq-vim = pkgs.callPackage { }; vim-fsharp = pkgs.callPackage { }; vim-reason-plus = pkgs.callPackage { }; vim-mail = pkgs.callPackage { }; }; }; environment.systemPackages = [ (pkgs.neovim.override { configure = { customRC = builtins.readFile ; packages.nvim = with pkgs.vimPlugins; { start = [ # cheat-sh-vim # deoplete-nvim # vim-abolish ale fzf-vim fzfWrapper goyo supertab undotree tabular vimwiki vim-256noir vim-colors-paramount vim-commentary vim-css-color vim-eunuch vim-fetch vim-fugitive vim-gitgutter vim-pandoc vim-pandoc-syntax # vim-pandoc-after vim-repeat vim-sensible # vim-startify vim-surround vim-mail ]; opt = [ csv dhall-vim elm-vim emmet-vim haskell-vim icalendar-vim idris-vim jq-vim purescript-vim rust-vim todo-txt-vim typescript-vim vim-fsharp vim-javascript vim-ledger vim-nix vim-reason-plus vim-toml vimtex ]; }; }; }) ]; }