about summary refs log tree commit diff
path: root/pkgs/devhell
diff options
context:
space:
mode:
authordevhell <devhell@mailfresser.de>2020-12-04 16:38:09 +0000
committerdevhell <devhell@mailfresser.de>2020-12-04 16:40:09 +0000
commite0cf8a362d95a7094adec78d11bbf8d4b7d7b547 (patch)
treee5769404fde5c8495e145842608333870d77a500 /pkgs/devhell
parent3402810c7ff7feca7ae722a39c898cbf200654fb (diff)
devhell/vim: Change vim from module to package
Recommended by aszlig to switch from module to package.
Diffstat (limited to 'pkgs/devhell')
-rw-r--r--pkgs/devhell/default.nix5
-rw-r--r--pkgs/devhell/vim/default.nix80
2 files changed, 85 insertions, 0 deletions
diff --git a/pkgs/devhell/default.nix b/pkgs/devhell/default.nix
new file mode 100644
index 00000000..90fe73d2
--- /dev/null
+++ b/pkgs/devhell/default.nix
@@ -0,0 +1,5 @@
+{ callPackage, vim_configurable }:
+
+{
+  vim = callPackage ./vim { };
+}
diff --git a/pkgs/devhell/vim/default.nix b/pkgs/devhell/vim/default.nix
new file mode 100644
index 00000000..968a5ee4
--- /dev/null
+++ b/pkgs/devhell/vim/default.nix
@@ -0,0 +1,80 @@
+{ pkgs ? import <nixpkgs> {} }:
+
+pkgs.vim_configurable.overrideAttrs (drv: {
+  vimrc = pkgs.vimUtils.vimrcFile {
+    packages.myplugins = with pkgs.vimPlugins; {
+      start = [
+        ale
+        awesome-vim-colorschemes
+        delimitMate
+        goyo-vim
+        i3config-vim
+        indentLine
+        lightline-vim
+        limelight-vim
+        sleuth
+        tabular
+        vim-lastplace
+        vim-nix
+        vim-signify
+      ];
+      opt = [ vimtex ];
+    };
+    customRC = ''
+      set nocompatible
+      set showcmd
+      set showmatch
+      set ignorecase
+      set smartcase
+      set incsearch
+      set modeline
+      set smarttab
+      set expandtab
+      set smartindent
+      set ruler
+      set tabstop=4
+      set softtabstop=4
+      set shiftwidth=4
+      set textwidth=79
+      set background=dark
+      set history=500
+      set backspace=indent,eol,start
+      set nu
+      set cursorline
+      set laststatus=2
+      set signcolumn=number
+      set timeout timeoutlen=5000 ttimeoutlen=100
+
+      filetype plugin indent on
+      colorscheme tender
+
+      " signify Settings
+      set updatetime=100
+
+      " indentLine Settings
+      let g:indentLine_char_list = ['|', '¦', '┆', '┊']
+      let g:indentLine_setColors = 1
+      let g:indentLine_fileTypeExclude = ['help', 'main', 'vimfiler', 'json']
+      let g:better_whitespace_filetypes_blacklist = ['diff', 'gitcommit',
+      \ 'help', 'markdown', 'leaderGuide']
+
+      " goyo Settings
+      autocmd! User GoyoEnter Limelight
+      autocmd! User GoyoLeave Limelight!
+
+      " lightline Settings
+      let g:lightline = {'colorscheme': 'deus'}
+      set noshowmode
+
+      " vimtex Settings
+      let g:tex_flavor = 'latex'
+
+      " Autoload
+      autocmd FileType tex :packadd vimtex
+    '';
+  };
+
+  postInstall = (drv.postInstall or "") + ''
+    ln -sf "$vimrc" "$out/share/vim/vimrc"
+  '';
+})