1{ config, lib, pkgs, ... }:
2
3let
4 cfg = config.programs.vim;
5in {
6 options.programs.vim = {
7 defaultEditor = lib.mkOption {
8 type = lib.types.bool;
9 default = false;
10 description = ''
11 When enabled, installs vim and configures vim to be the default editor
12 using the EDITOR environment variable.
13 '';
14 };
15
16 package = lib.mkPackageOption pkgs "vim" {
17 example = "vim-full";
18 };
19 };
20
21 config = lib.mkIf cfg.defaultEditor {
22 environment.systemPackages = [ cfg.package ];
23 environment.variables = { EDITOR = lib.mkOverride 900 "vim"; };
24 };
25}