let nixpkgs = import {}; pkgsSrc = nixpkgs.pkgs.fetchFromGitHub { owner = "nixos"; repo = "nixpkgs-channels"; rev = "adfcc2d9531e78bf6a9e3b56e2f4fc873cb3d87b"; sha256 = "101mh6gb9wlx0lq5pw2m0n1fi3h2pag3ndg184rrqzvn9ynp28iw"; }; pkgs = import pkgsSrc {}; eqexam.pkgs = [ (pkgs.stdenv.mkDerivation rec { version = "2012-05-17"; pname = "eqexam"; name = "${pname}-${version}"; tlType = "run"; src = pkgs.fetchurl { url = "http://www.math.uakron.edu/~dpstory/eqexam/eqexam_pack.zip"; sha256 = "0g4w9ma6cr277li5b8dps9fm9jkjlwzwjc6ix01mw4kva4h5fdrj"; }; buildInputs = [ pkgs.unzip pkgs.texlive.combined.scheme-basic ]; buildPhase = " latex eqexam.ins "; installPhase = " mkdir -p $out/tex/latex/eqexam cp -va *.sty *.cfg *.def $out/tex/latex/eqexam mkdir -p $out/doc/latex/eqexam cp -va doc/* $out/doc/latex/eqexam "; meta = { branch = "3"; platforms = pkgs.stdenv.lib.platforms.unix; }; }) ]; mytexlive = (pkgs.texlive.combine { inherit (pkgs.texlive) scheme-full; inherit eqexam; }); in pkgs.stdenv.mkDerivation { name = "msc-thesis"; shellHook = '' alias vim-thesis="vim -p --servername VIM -- \ $PWD/src/docs/thesis.tex \ $PWD/src/docs/glossary.tex \ $PWD/src/docs/parts/context/context.tex \ $PWD/src/docs/parts/research/research.tex \ " ''; buildInputs = [ pkgs.xdotool (pkgs.vim_configurable.customize { name = "vim"; vimrcConfig = { # add custom .vimrc lines like this: customRC = '' set nocompatible " leader let mapleader = ',' set hidden syntax on set hlsearch set number " mappings to stop insert mode imap jjj imap kkk imap lll imap hhh set scroll=11 noremap :tabn noremap :tabp let g:ctrlp_map = '' let g:ctrlp_custom_ignore = { \ 'dir': '\v[\/]\.(git|hg|svn|)$$', \ 'file': '\v\.(exe|so|dll|so|swp|zip|aux|log|fdb_latexmk|fdb|dvi|lof|lot|pdf|fls|toc|gz|latexmain)$$', \ } " allways show status line set ls=2 set tabstop=4 set shiftwidth=4 set softtabstop=4 set expandtab "set textwidth=80 " sync default register to clipboard { if has('unnamedplus') set clipboard=unnamedplus else set clipboard=unnamed endif " } " colored brackets { let g:rbpt_colorpairs = [ \ ['brown', 'RoyalBlue3'], \ ['Darkblue', 'SeaGreen3'], \ ['darkgray', 'DarkOrchid3'], \ ['darkgreen', 'firebrick3'], \ ['darkcyan', 'RoyalBlue3'], \ ['darkred', 'SeaGreen3'], \ ['darkmagenta', 'DarkOrchid3'], \ ['brown', 'firebrick3'], \ ['gray', 'RoyalBlue3'], \ ['black', 'SeaGreen3'], \ ['darkmagenta', 'DarkOrchid3'], \ ['Darkblue', 'firebrick3'], \ ['darkgreen', 'RoyalBlue3'], \ ['darkcyan', 'SeaGreen3'], \ ['darkred', 'DarkOrchid3'], \ ['red', 'firebrick3'], \ ] let g:rbpt_max = 16 let g:rbpt_loadcmd_toggle = 0 au VimEnter * RainbowParenthesesToggle au Syntax * RainbowParenthesesLoadRound au Syntax * RainbowParenthesesLoadSquare au Syntax * RainbowParenthesesLoadBraces " } set backspace=indent,eol,start colorscheme PaperColor " Latex Related {{{ au BufRead,BufNewFile *.tex,*.md,*.markdown setlocal spell spelllang=en_us let g:vimtex_view_method = 'zathura' let g:vimtex_complete_enabled = 1 let g:vimtex_complete_close_braces = 1 let g:vimtex_complete_recursive_bib = 1 let g:vimtex_indent_enabled = 1 let g:vimtex_indent_bib_enabled = 1 if !exists('g:ycm_semantic_triggers') let g:ycm_semantic_triggers = {} endif let g:ycm_semantic_triggers.tex = [ \ 're!\\[A-Za-z]*cite[A-Za-z]*(\[[^]]*\]){0,2}{[^}]*', \ 're!\\[A-Za-z]*ref({[^}]*|range{([^,{}]*(}{)?))', \ 're!\\hyperref\[[^]]*', \ 're!\\includegraphics\*?(\[[^]]*\]){0,2}{[^}]*', \ 're!\\(include(only)?|input){[^}]*', \ 're!\\\a*(gls|Gls|GLS)(pl)?\a*(\s*\[[^]]*\]){0,2}\s*\{[^}]*', \ 're!\\includepdf(\s*\[[^]]*\])?\s*\{[^}]*', \ 're!\\includestandalone(\s*\[[^]]*\])?\s*\{[^}]*', \ ] function! ViewerCallback() dict call self.forward_search(self.out) endfunction let g:vimtex_view_zathura_hook_callback = 'ViewerCallback' " }}} ''; vam.knownPlugins = pkgs.vimPlugins; vam.pluginDictionaries = [ "youcompleteme" "vim-airline" "ctrlp" "vim-css-color" "rainbow_parentheses" "vim-colorschemes" "vim-signify" "vimtex" ]; }; }) mytexlive pkgs.zathura ]; }