Initial commit
This commit is contained in:
commit
a43b5a6a1a
12 changed files with 550 additions and 0 deletions
64
modules/vim.nix
Normal file
64
modules/vim.nix
Normal file
|
@ -0,0 +1,64 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
with lib;
|
||||
let cfg = config.voidcruiser.vim;
|
||||
in {
|
||||
options.voidcruiser.vim = {
|
||||
enable = mkEnableOption "Enables opinionated vim configuration";
|
||||
enableNvim = mkEnableOption "Enables neovim and alias";
|
||||
setEnvVar = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Set 'vim' as $EDITOR
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
programs.nano.enable = false;
|
||||
|
||||
environment = {
|
||||
|
||||
variables = mkIf cfg.setEnvVar { EDITOR = "vim"; };
|
||||
|
||||
systemPackages = with pkgs; [
|
||||
|
||||
(mkIf cfg.enableNvim (neovim.override { vimAlias = true; }))
|
||||
|
||||
((vim_configurable.override { }).customize {
|
||||
name = "vim";
|
||||
vimrcConfig = {
|
||||
packages.myplugs = with pkgs.vimPlugins; {
|
||||
start = [ vim-nix ];
|
||||
opt = [];
|
||||
};
|
||||
customRC = ''
|
||||
syntax on
|
||||
set nocompatible
|
||||
set ignorecase
|
||||
set hlsearch
|
||||
set incsearch
|
||||
set autoindent
|
||||
set smartindent
|
||||
set wildmenu
|
||||
set expandtab
|
||||
set shiftwidth=4
|
||||
set tabstop=4
|
||||
set number
|
||||
set relativenumber
|
||||
set mouse=
|
||||
set listchars=tab:│\ ,trail:·
|
||||
set list
|
||||
set scrolloff=3
|
||||
set notimeout
|
||||
set backspace=2
|
||||
au FileType nix setlocal shiftwidth=2 tabstop=2 expandtab
|
||||
au FileType haskell,tex setlocal shiftwidth=4 tabstop=4 expandtab
|
||||
'';
|
||||
};
|
||||
})
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue