From bb5c011d91ed00ac168c7e5f0b525feb29254cca Mon Sep 17 00:00:00 2001 From: tv Date: Sun, 1 Nov 2015 10:50:03 +0100 Subject: tv: cherry-pick vim from hotwip! --- tv/2configs/vim.nix | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 tv/2configs/vim.nix (limited to 'tv/2configs/vim.nix') diff --git a/tv/2configs/vim.nix b/tv/2configs/vim.nix new file mode 100644 index 000000000..d1104931d --- /dev/null +++ b/tv/2configs/vim.nix @@ -0,0 +1,96 @@ +{ lib, pkgs, ... }: + +with lib; +let + out = { + environment.systemPackages = [ + vim' + ]; + + environment.variables.EDITOR = mkForce "vim"; + }; + + runtimepath = concatStringsSep "," [ + "$HOME/.vim" # TODO get rid if this and incorporate everything from wu:~tv/.vim + "${pkgs.vimPlugins.undotree}/share/vim-plugins/undotree" + #"${tv-vim}/share/vim" + ]; + + vim' = pkgs.writeScriptBin "vim" '' + #! /bin/sh + set -eu + mkdir -p "$HOME"/.vim/backup + mkdir -p "$HOME"/.vim/cache + mkdir -p "$HOME"/.vim/undo + exec ${pkgs.vim}/bin/vim -u ${vimrc} "$@" + ''; + + vimrc = pkgs.writeText "vimrc" '' + set nocompatible + + set autoindent + set backspace=indent,eol,start + set backup + set backupdir=$HOME/.vim/backup/ + set directory=$HOME/.vim/cache// + set hlsearch + set incsearch + set mouse=a + set pastetoggle= + set runtimepath=${runtimepath} + set shortmess+=I + set showcmd + set showmatch + set ttimeoutlen=0 + set undodir=$HOME/.vim/undo + set undofile + set undolevels=1000000 + set undoreload=1000000 + set viminfo='20,<1000,s100,h,n$HOME/.vim/cache/info + set visualbell + set wildignore+=*.o,*.class,*.hi,*.dyn_hi,*.dyn_o + set wildmenu + set wildmode=longest,full + + filetype plugin indent on + + "colorscheme industry # TODO + syntax on + + cmap w!! w!sudo tee % >/dev/null + + nmap q :buffer + nmap :buffer + + cnoremap + + noremap :q + + nnoremap [5^ :tabp + nnoremap [6^ :tabn + nnoremap [5@ :tabm -1 + nnoremap [6@ :tabm +1 + + nnoremap :tabp + nnoremap :tabn + inoremap :tabp + inoremap :tabn + + " + noremap Oa | noremap! Oa + noremap Ob | noremap! Ob + noremap Oc | noremap! Oc + noremap Od | noremap! Od + " <[C]S-{Up,Down,Right,Left> + noremap [a | noremap! [a + noremap [b | noremap! [b + noremap [c | noremap! [c + noremap [d | noremap! [d + vnoremap u + ''; + + # "7.4.335" -> "74" + #majmin = x: concatStrings (take 2 (splitString "." x)); +in +out +#https://github.com/mbbill/undotree -- cgit v1.2.3